#!/usr/bin/env python """Occupy a seat group with a ticket bundle. :Copyright: 2006-2020 Jochen Kupperschmidt :License: Modified BSD, see LICENSE for details. """ import click from byceps.services.seating import seat_group_service from byceps.services.ticketing import ticket_bundle_service from byceps.util.system import get_config_filename_from_env_or_exit from _util import app_context def get_seat_group(ctx, param, seat_group_id): seat_group = seat_group_service.find_seat_group(seat_group_id) if not seat_group: raise click.BadParameter(f'Unknown seat group ID "{seat_group_id}".') return seat_group def get_ticket_bundle(ctx, param, ticket_bundle_id): ticket_bundle = ticket_bundle_service.find_bundle(ticket_bundle_id) if not ticket_bundle: raise click.BadParameter( f'Unknown ticket bundle ID "{ticket_bundle_id}".' ) return ticket_bundle @click.command() @click.argument('seat_group', callback=get_seat_group) @click.argument('ticket_bundle', callback=get_ticket_bundle) def execute(seat_group, ticket_bundle): seat_group_service.occupy_seat_group(seat_group, ticket_bundle) click.secho('Done.', fg='green') if __name__ == '__main__': config_filename = get_config_filename_from_env_or_exit() with app_context(config_filename): execute()