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
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
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