def get(self): event_id = request.args['id'] event = event_repository.get_by_id(event_id) if not event: return EVENT_NOT_FOUND else: event_org = event_repository.get_by_id_with_organisation(event.id) return event_details(event_org), 200
def put(self): args = self.req_parser.parse_args() event = event_repository.get_by_id(args['id']) if not event: return EVENT_NOT_FOUND user_id = g.current_user["id"] current_user = user_repository.get_by_id(user_id) if not current_user.is_event_admin(event.id): return FORBIDDEN _date_format = '%Y-%m-%dT%H:%M:%S.%fZ' name = args['name'] description = args['description'] start_date = datetime.strptime((args['start_date']), _date_format) end_date = datetime.strptime((args['end_date']), _date_format) key = args['key'] organisation_id = args['organisation_id'] email_from = args['email_from'] url = args['url'] application_open = datetime.strptime((args['application_open']), _date_format) application_close = datetime.strptime((args['application_close']), _date_format) review_open = datetime.strptime((args['review_open']), _date_format) review_close = datetime.strptime((args['review_close']), _date_format) selection_open = datetime.strptime((args['selection_open']), _date_format) selection_close = datetime.strptime((args['selection_close']), _date_format) offer_open = datetime.strptime((args['offer_open']), _date_format) offer_close = datetime.strptime((args['offer_close']), _date_format) registration_open = datetime.strptime((args['registration_open']), _date_format) registration_close = datetime.strptime((args['registration_close']), _date_format) event.update(name, description, start_date, end_date, key, organisation_id, email_from, url, application_open, application_close, review_open, review_close, selection_open, selection_close, offer_open, offer_close, registration_open, registration_close) try: db.session.commit() except IntegrityError: LOGGER.error("Event with KEY: {} already exists".format(key)) return EVENT_KEY_IN_USE event_org = event_repository.get_by_id_with_organisation(event.id) return event_details(event_org), 200
def post(self): args = self.req_parser.parse_args() user_id = g.current_user["id"] current_user = user_repository.get_by_id(user_id) if not current_user.is_admin: return FORBIDDEN _date_format = '%Y-%m-%dT%H:%M:%S.%fZ' name = args['name'] description = args['description'] start_date = datetime.strptime((args['start_date']), _date_format) end_date = datetime.strptime((args['end_date']), _date_format) key = args['key'] organisation_id = args['organisation_id'] email_from = args['email_from'] url = args['url'] application_open = datetime.strptime((args['application_open']), _date_format) application_close = datetime.strptime((args['application_close']), _date_format) review_open = datetime.strptime((args['review_open']), _date_format) review_close = datetime.strptime((args['review_close']), _date_format) selection_open = datetime.strptime((args['selection_open']), _date_format) selection_close = datetime.strptime((args['selection_close']), _date_format) offer_open = datetime.strptime((args['offer_open']), _date_format) offer_close = datetime.strptime((args['offer_close']), _date_format) registration_open = datetime.strptime((args['registration_open']), _date_format) registration_close = datetime.strptime((args['registration_close']), _date_format) event_type = args['event_type'].upper() event = Event(name, description, start_date, end_date, key, organisation_id, email_from, url, application_open, application_close, review_open, review_close, selection_open, selection_close, offer_open, offer_close, registration_open, registration_close, EventType[event_type]) event.add_event_role('admin', user_id) try: event = event_repository.add(event) except IntegrityError as e: LOGGER.error("Event with KEY: {} already exists".format(key)) LOGGER.error(e) return EVENT_KEY_IN_USE event_org = event_repository.get_by_id_with_organisation(event.id) return event_details(event_org), 201
def get(self): args = self.req_parser.parse_args() event = event_repository.get_by_id_with_organisation(args['event_id']) if not event: return EVENT_NOT_FOUND user_id = g.current_user["id"] event_id = args['event_id'] current_user = user_repository.get_by_id(user_id) if not current_user.is_event_admin(event_id): return FORBIDDEN num_users = db.session.query(AppUser.id).count() num_responses = db.session.query(Response.id).count() num_submitted_respones = db.session.query(Response).filter( Response.is_submitted == True).count() return { 'event_description': event.Event.description, 'num_users': num_users, 'num_responses': num_responses, 'num_submitted_responses': num_submitted_respones }, 200