def login_to_app(): username, password = check_credentials_exist(request) if not username: return responses.response_invalid_request(password) if AppEngine.is_logged_user(username, password): return responses.response_200(request.json) return responses.response_wrong_credentials()
def create_new_event(): errors = validator.EventScheme().validate(request.json) if errors: return responses.response_invalid_request(errors) pin_code = AppEngine.create_new_event(request.json) event = AppEngine.get_event_by_pin_code(pin_code) return responses.response_200(event.get_event_info())
def check_participant_user_name(pin_code, userEmail): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() if userEmail in event.participants_dict.keys(): return responses.response_invalid_user_name() else: return responses.response_200(event.get_event_info())
def is_participant_event_owner(pin_code, user_name): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() if user_name not in event.participants_dict.keys(): return responses.response_invalid_user_name() is_owner = event.is_event_owner(user_name) return responses.response_200({"is_owner": is_owner})
def sign_up(): username, password = check_credentials_exist(request) if not username: return responses.response_invalid_request(password) if AppEngine.signup_new_user(username, password): return responses.response_200(request.json) else: return responses.response_invalid_user_name()
def get_participant_owes(pin_code, userEmail): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() try: owes = event.split_investment()[userEmail] return responses.response_200({"owes": owes}) except KeyError: return responses.response_invalid_user_name()
def remove_item(): errors = validator.DeleteItem().validate(request.json) if errors: return responses.response_invalid_request(errors) event = AppEngine.get_event_by_pin_code(request.json["pin_code"]) try: event.remove_item(request.json["title"]) return responses.response_200({"message": "deleted"}) except ValueError as ex: return responses.response_invalid_request({"message": str(ex)})
def get_equipment_list(pin_code, regenerate): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() items_dict = event.get_equipment_list(regenerate) try: json_response = _get_equipment_list_response(items_dict) except Exception as e: return responses.response_internal_error(e) return responses.response_200(json_response)
def set_info(): try: request_dict = validator.EventInfo().load(request.json) pin_code = request_dict["pin_code"] event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() event.set_info(request_dict["info"]) return responses.response_200(event.get_event_info()) except ValidationError as errors: return responses.response_invalid_request(errors.messages)
def set_kind_of_meal(): try: request_dict = validator.KindOfMEalScheme().load(request.json) pin_code = request_dict["pin_code"] event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() event.set_kind_of_meal(request_dict["kind_of_meal"]) return responses.response_200(request_dict) except ValidationError as errors: return responses.response_invalid_request(errors.messages)
def add_message(): try: request_dict = validator.MessageSchema().load(request.json) pin_code = request_dict["pin_code"] event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() event.add_message(request_dict["title"], request_dict["text"], request_dict["author"]) return responses.response_200(request_dict) except ValidationError as errors: return responses.response_invalid_request(errors.messages)
def get_participant_events(): app.app.logger.debug("In get_participant_events") app.app.logger.debug(f"Got request: {request} of type: {type(request)}") app.app.logger.debug(f"Got json: {request.json} ") user_email = request.json.get('userEmail', None) if not user_email: return responses.response_invalid_request( {"message": "UserEmail is required"}) if user_email not in AppEngine.users_dict.keys(): return responses.response_invalid_user_name() events_dict = AppEngine.get_user_events(user_email) return responses.response_200(events_dict)
def get_rides(pin_code): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() rides_dict = event.rides_board.get_rides() json_response = {} try: for key, val in rides_dict.items(): json_response[key] = json.loads(RideEncoder().encode(val)) except Exception as e: return responses.response_internal_error(e) return responses.response_200(json_response)
def add_item_in_charge(): errors = validator.AddItemInCharge().validate(request.json) if errors: return responses.response_invalid_request(errors) event = AppEngine.get_event_by_pin_code(request.json["pin_code"]) if not event: return responses.response_invalid_event() title = request.json['title'] in_charge = request.json['user_name'] try: event.equipment_list.add_in_charge(title, in_charge) return responses.response_200( json.loads(ItemEncoder().encode( event.get_equipment_list()[title]))) except Exception as ex: return responses.response_invalid_request({"message": str(ex)})
def add_item(): errors = validator.Item().validate(request.json) if errors: return responses.response_invalid_request(errors) event = AppEngine.get_event_by_pin_code(request.json["pin_code"]) if not event: return responses.response_invalid_event() title = request.json['title'] amount = request.json['amount'] try: event.equipment_list.add_new_item(title, amount) return responses.response_200( json.loads(ItemEncoder().encode( event.get_equipment_list()[title]))) except Exception as ex: return responses.response_invalid_request({"message": str(ex)})
def add_ride(): errors = validator.RideScheme().validate(request.json) if errors: return responses.response_invalid_request(errors) event = AppEngine.get_event_by_pin_code(request.json["pin_code"]) if not event: return responses.response_invalid_event() try: driver_user_name = request.json['driver_user_name'] driver = event.participants_dict[driver_user_name] source = request.json['source'] available_seats = request.json['available_seats'] departure_time = request.json['departure_time'] event.rides_board.add_ride(driver, available_seats, source, departure_time) return responses.response_200({"response": "added ride"}) except KeyError: return responses.response_invalid_user_name()
def set_item_price(): errors = validator.SetItemPrice().validate(request.json) if errors: return responses.response_invalid_request(errors) event = AppEngine.get_event_by_pin_code(request.json["pin_code"]) if not event: return responses.response_invalid_event() title = request.json['title'] price = request.json['price'] who_paid = request.json['user_name'] try: event.set_item_price(title, price, who_paid) return responses.response_200( json.loads(ItemEncoder().encode( event.get_equipment_list()[title]))) except ValueError as ex: return responses.response_invalid_request({"message": str(ex)})
def add_new_participant(): errors = validator.ParticipantScheme().validate(request.json) if errors: return responses.response_invalid_request(errors) event_pin_code = request.json["pin_code"] event = AppEngine.get_event_by_pin_code(event_pin_code) if not event: return responses.response_invalid_event() user_name = request.json['userEmail'] meal_preference = request.json['mealPreference'] glass_preference = request.json['glassPreference'] chaser_preference = request.json['chaserPreference'] allergies = request.json['allergies'] if event.add_participant(user_name, meal_preference, allergies, glass_preference, chaser_preference): return responses.response_200((event.get_event_info())) else: return responses.response_invalid_user_name()
def get_all_participants_owes(pin_code): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() owes_list = event.split_investment() return responses.response_200(owes_list)
def get_current_money_spent(pin_code): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() money_spent = event.cashier.get_money_spent() return responses.response_200({"money_spent": money_spent})
def get_event_info(pin_code): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() return responses.response_200(event.get_event_info())
def get_beverage_statistics(pin_code): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() return responses.response_200(event.get_beverages_statistics())
def get_all_participants(pin_code): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() participants_list = list(event.participants_dict.keys()) return responses.response_200({"participants": participants_list})
def is_alive(): app.logger.info("Server is UP!") return response_200({"message": "The server is up Queen! :)"})
def get_messages_board(pin_code): event = AppEngine.get_event_by_pin_code(pin_code) if not event: return responses.response_invalid_event() messages_list = event.get_messages() return responses.response_200({"messages": messages_list})