Example #1
0
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
Example #2
0
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
Example #3
0
    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
Example #4
0
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())