def update_venue(venue_id): data = request.get_json() validate(data, post_update_venue_schema) fetched_venue = dao_get_venue_by_id(venue_id) dao_update_venue(venue_id, **data) return jsonify(fetched_venue.serialize()), 200
def create_event(): data = request.get_json(force=True) event_year = None validate(data, post_create_event_schema) try: dao_get_event_type_by_id(data['event_type_id']) except NoResultFound: raise InvalidRequest( 'event type not found: {}'.format(data['event_type_id']), 400) try: dao_get_venue_by_id(data['venue_id']) except NoResultFound: raise InvalidRequest('venue not found: {}'.format(data['venue_id']), 400) event = Event( event_type_id=data['event_type_id'], title=data['title'], sub_title=data.get('sub_title'), description=data['description'], booking_code='', fee=data.get('fee'), conc_fee=data.get('conc_fee'), multi_day_fee=data.get('multi_day_fee'), multi_day_conc_fee=data.get('multi_day_conc_fee'), venue_id=data.get('venue_id'), event_state=data.get('event_state', DRAFT), remote_access=data.get('remote_access'), remote_pw=data.get('remote_pw'), ) for event_date in data.get('event_dates'): if not event_year: event_year = event_date['event_date'].split('-')[0] speakers = [] for s in event_date.get('speakers', []): speaker = dao_get_speaker_by_id(s['speaker_id']) speakers.append(speaker) e = EventDate(event_datetime=event_date['event_date'], end_time=None if event_date.get('end_time') == '' else event_date.get('end_time'), speakers=speakers) dao_create_event_date(e) event.event_dates.append(e) dao_create_event(event) image_filename = data.get('image_filename') image_data = data.get('image_data') storage = Storage(current_app.config['STORAGE']) if image_data: target_image_filename = '{}/{}'.format(event_year, str(event.id)) storage.upload_blob_from_base64string(image_filename, target_image_filename, base64.b64decode(image_data)) image_filename = target_image_filename elif image_filename: if not storage.blob_exists(image_filename): raise InvalidRequest('{} does not exist'.format(image_filename), 400) event.image_filename = image_filename dao_update_event(event.id, image_filename=image_filename) if event.fee and event.fee > 0 and event.event_state in [READY, APPROVED]: paypal_tasks.create_update_paypal_button_task.apply_async( (str(event.id), )) return jsonify(event.serialize()), 201
def it_gets_a_venue_by_id(self, db, db_session, sample_venue): venue = create_venue( directions="By Train: 5 mins walk from Highbury & Islington") fetched_venue = dao_get_venue_by_id(venue.id) assert fetched_venue == venue
def get_venue_by_id(venue_id): current_app.logger.info('get_venue: {}'.format(venue_id)) venue = dao_get_venue_by_id(venue_id) return jsonify(venue.serialize())