Example #1
0
def create(current_user, user_id, limit=4, page=1):
    """ Method to create event."""
    event = request.get_json()
    name=event['name'].strip()
    category=event['category']
    location=event['location']
    date=event['date']
    description=event['description']
    new_event = validate_data(event)
    if new_event is not event:
        return jsonify({"message":new_event}), 400
    existing=Events.query.filter_by(name=name).filter_by(category=category).filter_by\
    (created_by=user_id).filter_by(location=location).first()
    if existing:
        response = {"message" : "A similar event already exists!"}
        return make_response(jsonify(response)), 302    
    try:
        created_event = Events(name=name, category=category, location=location,
        date=date, description=description, created_by = user_id)
        created_event.save()
        response = jsonify({
            'id': created_event.id, 'name' : created_event.name, 'category' : created_event.category,
            'location' : created_event.location, 'date' : created_event.date,
            'description' : created_event.description, 'created_by' : created_event.created_by,
            'message': 'Event successfully created'
        })
    except KeyError:
        response = {"message": "There was an error creating the event, please try again"}
        return make_response(jsonify(response)), 500                            
    return make_response(response), 201
Example #2
0
def create():
    """a route to handle creating an event"""
    event_details = request.get_json()
    check_details = validate_data(event_details)
    check_date = validate_date(event_details['event_date'])
    #check if the data was confirmed valid
    if check_details is not "valid":
        return jsonify({"message" : check_details}), 400
    elif check_date is not "valid":
        return jsonify({"message" : check_date}), 400
    else:
        name = event_details['name']
        description = event_details['description']
        category = event_details['category']
        location = event_details['location']
        event_date = event_details['event_date']
        created_by = g.user
        #check if the user has an event with a similar name and location
        existing_event = [event for event in g.user.events if event.name == name \
            and event.location == location]
        if not existing_event:
            #create the event if does not exist
            event = Events(name=name, description=description, category=category, \
                location=location, event_date=event_date, created_by=created_by)
            event.save()
            res = event.to_json()
            return jsonify(res), 201
        return jsonify({"message" : "you have a similar event in the same location"}), 302
Example #3
0
    def post(self, user_id):
        """Handle POST request for this view. Url ---> /api/events"""

        user = User.query.filter_by(id=user_id).first()  # get user details
        if user.email_confirmed is not True:
            response = {
                "message":
                'Your Must Confirm your Email Address in-order to create an event'
            }
            return make_response(jsonify(response)), 401

        args = {}
        event_models = [
            'title', 'location', 'time', 'date', 'description', 'image_url',
            'event_category'
        ]

        for event_res in event_models:
            var = str(request.data.get(event_res, '').capitalize())
            var = var.strip(' \t\n\r')
            if not var:
                response = {"message": '{} missing'.format(event_res)}
                return make_response(jsonify(response)), 401
            args.update({event_res: var})

        if Events.query.filter_by(title=args['title']).first():
            response = {"message": 'Event title exists. Choose another one'}
            return make_response(jsonify(response)), 401

        event = Events(**args, created_by=user_id)

        event.save()
        response = jsonify({
            'id': event.id,
            'title': event.title,
            'location': event.location,
            'time': event.time,
            'date': event.date,
            'description': event.description,
            'image_url': event.image_url,
            'created_by': user.name,
            'event_category': event.event_category,
        })

        return make_response(response), 201