def rating_controller(request): """Rating controller :param request: request from FE :return: response """ data = request.get_json() uid = get_jwt_identity() if not data['rating']: if rating_service.skip_rating_service(uid): return make_response_utils( status=202, message=message_utils.SKIP_RATING_SUCCESS), 202 else: return make_response_utils(status=403, error=message_utils.SKIP_RATING_FAILURE, success=False), 403 else: if rating_service.is_validated_rating_service( request) and rating_service.rating_service( uid, data['rating']): return make_response_utils( status=201, message=message_utils.CREATE_SUCCESS.format('rating')), 201 else: return make_response_utils( status=402, error=message_utils.CREATE_FAILURE.format('rating'), success=False), 402
def create_allergy_controller(request): """Create allergy controller :param request: request from client :return: response """ if not allergy_service.is_validated_post_service(request.json): return make_response_utils( status=401, error=message_utils.NOT_CORRECT_FORMAT_FAILURE.format( 'request body'), success=False), 401 if not allergy_service.is_existed_meta_tag_ids(request.json): return make_response_utils( status=402, error=message_utils.NOT_EXIST_FAILURE.format('tag_ids'), success=False), 402 if allergy_service.create_allergy_service(get_jwt_identity(), request.json): return make_response_utils( status=201, message=message_utils.CREATE_SUCCESS.format('allergy')), 201 return make_response_utils(status=403, error=message_utils.ERROR, success=False), 403
def auth_user_controller(request): """Authentication user controller :param request: Request from clients :return: Response for clients """ # handle missing firebase_token if user_service.is_missing_token_service(request): return make_response_utils(status=401, error=message_utils.AUTH_MISSING_TOKEN_IN_RB, success=False), 401 else: firebase_token = request.get_json()['firebase_token'] # handle verify firebase_token try: decoded_token = auth.verify_id_token(firebase_token) except Exception as e: logging.error(str(e)) return make_response_utils(status=402, error=message_utils.AUTH_TOKEN_NOT_WORKING, success=False), 402 # handle virtual machine login if user_service.is_not_valid_device(decoded_token['uid']): return make_response_utils(status=403, error=message_utils.AUTH_CANNOT_GET_EMAIL, success=False), 403 # handle authentication success user_service.save_token_service(request.json['fcm_token'], decoded_token['uid']) value = { "access_token": create_access_token(identity=decoded_token['uid'], expires_delta=False), "user": user_service.get_authenticated_user_service(decoded_token['uid']) } return make_response_utils(status=201, message=message_utils.AUTH_SUCCESS, value=value), 201
def mealtoday_controller(request): """Meal today controller :param request: request from FE :return: response """ uid = get_jwt_identity() temperature = request.args.get('temperature') if temperature is not None: is_valid_temp = mealtoday_service.check_temperature_service( temperature) location = mealtoday_service.get_location_for_mealtoday_by_uid_service( uid) if is_valid_temp and location is not None: return make_response_utils( status=200, message=message_utils.GET_LIST_SUCCESS.format('meal today'), value=mealtoday_service.mealtoday_service( uid, location, temperature)), 200 elif location is not None and is_valid_temp is False: return make_response_utils( status=400, success=False, error=message_utils.NOT_CORRECT_FORMAT_FAILURE.format( 'params')), 400 elif location is None: return make_response_utils( status=402, success=False, error=message_utils.NOT_EXIST_FAILURE.format('location')), 402 else: return make_response_utils( status=401, success=False, error=message_utils.MISSING_FAILURE.format('params')), 401
def last_location_controller(request_body): """Save the last location of user :param request_body: request body include location :return: response """ if not user_service.is_validated_location_service(request_body.json): return make_response_utils(status=401, error=message_utils.NOT_CORRECT_FORMAT_FAILURE.format('location')), 401 if user_service.update_location_service(get_jwt_identity(), request_body.json['location']): return make_response_utils(status=201, message=message_utils.UPDATE_SUCCESS.format('location')), 201 return make_response_utils(status=402, error=message_utils.ERROR), 402
def delete_allergy_controller(allergy_id): """Delete allergy :param allergy_id: allergy id :return: response """ if allergy_service.delete_allergy_by_id_service(get_jwt_identity(), allergy_id): return make_response_utils( status=201, message=message_utils.DELETE_SUCCESS.format('allergy')), 201 return make_response_utils(status=401, error=message_utils.ERROR), 401
def delete_history_controller(history_id): """Delete history controller :return: response """ if history_service.delete_history_service(history_id): return make_response_utils( status=201, message=message_utils.DELETE_SUCCESS.format('history')), 201 return make_response_utils(status=401, error=message_utils.ERROR, success=False), 401
def delete_bookmark_controller(food_id): """Delete bookmark controller :param food_id: food_id from clients :return: response """ if bookmark_service.delete_bookmark_service(get_jwt_identity(), food_id): return make_response_utils( status=201, message=message_utils.DELETE_SUCCESS.format('bookmark')), 201 return make_response_utils(status=401, error=message_utils.ERROR, success=False), 401
def update_user_controller(request): """Update user information controller :param request: Request from clients :return: Response for clients """ if not user_service.is_validated_user_service(request): return make_response_utils(status=401, error=message_utils.NOT_CORRECT_FORMAT_FAILURE.format('request body'), success=False), 401 if user_service.is_new_user_service(request.json['uid']): return make_response_utils(status=402, error=message_utils.NOT_EXIST_FAILURE.format('user'), success=False), 402 user_service.update_user_service(request) return make_response_utils(status=201, message=message_utils.UPDATE_SUCCESS.format('user')), 201
def get_store_by_id_controller(store_id): """Get store by id controller :param store_id: store_id from clients :return: response """ store = store_service.get_store_by_id_service(store_id) if store: return make_response_utils( status=201, value=store, message=message_utils.GET_SUCCESS.format('store')), 201 return make_response_utils( status=401, success=False, error=message_utils.NOT_EXIST_FAILURE.format('store')), 401
def get_tag_by_meta_tag_id_controller(meta_tag_id): """Get tag by meta tag id controller :param meta_tag_id: meta_tag_id :return: tag """ tags = tag_service.get_tag_by_meta_tag_id_service(meta_tag_id) if tags: return make_response_utils( status=201, values=tags, message=message_utils.GET_LIST_SUCCESS.format('tags')), 201 return make_response_utils( status=401, success=False, error=message_utils.NOT_EXIST_FAILURE.format('meta-tag')), 401
def get_meta_tags_by_tag_id_controller(tag_id): """Get meta_tags by tag_id controller :param tag_id: tag_id from clients :return: response """ meta_tags = meta_tag_service.get_meta_tags_by_tag_id_service(tag_id) if meta_tags: return make_response_utils( status=201, values=meta_tags, message=message_utils.GET_LIST_SUCCESS.format('meta-tags')), 201 return make_response_utils( status=401, success=False, error=message_utils.NOT_EXIST_FAILURE.format('tag_id')), 401
def food_detail_controller(food_id): """Food detail controller :param food_id: food_id from clients :return: response """ if food_service.is_existed_food_id(food_id): food = food_service.get_food_detail_service(get_jwt_identity(), food_id) list_same_store_food = food_service.get_list_same_store_food_by_food_id_service(food_id, get_jwt_identity()) if food and list_same_store_food: return make_response_utils(status=201, value=food, values=list_same_store_food, message=message_utils.GET_SUCCESS.format('food')), 201 return make_response_utils(status=401, success=False, message=message_utils.NOT_EXIST_FAILURE.format('food')), 401 else: return make_response_utils(status=401, success=False, message=message_utils.NOT_EXIST_FAILURE.format('food')), 401
def get_city_controller(request): """Get cities controller :param request: request from clients :return: response """ keyword = request.args.get('search') return make_response_utils(message=message_utils.SEARCH_SUCCESS.format('cities'), status=201, values=city_service.search_city_service(keyword)), 201
def get_survey_controller(): """Get survey controller :return: response """ return make_response_utils( status=201, values=survey_service.get_survey_service(get_jwt_identity()), message=message_utils.GET_LIST_SUCCESS.format('survey')), 201
def search_limited_food_controller(request): """Search limited food controller :param request: request from clients :return: response """ values = food_service.search_limited_food_service(request.args.get('search'), request.args.get('limit'), get_jwt_identity()) return make_response_utils(status=201, values=values, message=message_utils.SEARCH_SUCCESS.format('food')), 201
def get_list_histories_controller(): """Get list history controller :return: response """ return make_response_utils( status=201, message=message_utils.GET_LIST_SUCCESS.format('histories'), values=history_service.get_list_histories_service( get_jwt_identity())), 201
def get_allergies_controller(): """Get allergies :return: response """ values = allergy_service.get_all_allergy_by_uid_service(get_jwt_identity()) return make_response_utils( status=201, values=values, message=message_utils.GET_LIST_SUCCESS.format('allergies')), 201
def get_list_bookmarks_controller(): """Get list bookmarks controller :return: response """ values = bookmark_service.get_list_bookmarks_service(get_jwt_identity()) return make_response_utils( status=201, message=message_utils.GET_LIST_SUCCESS.format('bookmarks'), values=values), 201
def get_meta_tag_controller(request): """Get meta tags controller :param request: request from clients :return: response """ keyword = request.args.get('search') limit = request.args.get('limit') values = meta_tag_service.search_meta_tag_service(keyword, limit) return make_response_utils( status=201, message=message_utils.GET_LIST_SUCCESS.format('meta-tags'), values=values), 201
def food_recommend_controller(): """Get params and response recommended food :return: list food object status 201 if success error status 401 if params is not correct """ #als_service.als_recommend_service.delay() uid = get_jwt_identity() location = recommend_service.get_location_for_recommend_by_uid_service(uid) value = {"limit": 5, "offset": 1, "total_offset": 1, "total_record": 5} if location is not None: return make_response_utils( status=201, message=message_utils.GET_LIST_SUCCESS.format('recommend'), value=value, values=recommend_service.get_recommend_food_service(location, uid)), 201 else: return make_response_utils( status=401, success=False, error=message_utils.NOT_EXIST_FAILURE.format('location')), 401
def get_top_rating_controller(request): """Get top rating controller :param request: request from clients :return: response """ values = rating_service.get_top_rating_service(request.args.get('top'), request.args.get('offset'), get_jwt_identity()) return make_response_utils( status=201, message=message_utils.GET_LIST_SUCCESS.format('top'), values=values), 201
def create_history_controller(request): """Create history controller :param request: request :return: response """ if not history_service.is_validated_history_post_service(request.json): return make_response_utils( status=401, error=message_utils.NOT_CORRECT_FORMAT_FAILURE.format('history'), success=False), 401 if not food_service.is_existed_food_id(request.json['food_id']): return make_response_utils( status=402, error=message_utils.NOT_EXIST_FAILURE.format('food_id'), success=False), 402 if history_service.create_history_service(get_jwt_identity(), request.json['food_id']): return make_response_utils( status=201, message=message_utils.CREATE_SUCCESS.format('history')), 201 return make_response_utils(status=403, message=message_utils.ERROR, success=False), 403
def search_survey_controller(request): """Search survey controller :param request: request from clients :return: response """ offset = request.args.get('offset') limit = request.args.get('limit') search = request.args.get('search') value, values = survey_service.search_survey_service(offset, limit, search) return make_response_utils( status=201, value=value, values=values, message=message_utils.SEARCH_SUCCESS.format('survey')), 201
def get_tag_controller(request): """Get all tag controller :return: All tag in database """ offset = request.args.get('offset') limit = request.args.get('limit') search = request.args.get('search') query_params = tag_service.validate_query_params(offset, limit, search) value = tag_service.get_paging_service(query_params['offset'], query_params['limit'], query_params['search']) values = tag_service.get_paging_tag_service(query_params['offset'], query_params['limit'], query_params['search']) return make_response_utils( status=201, value=value, values=values, message=message_utils.GET_LIST_SUCCESS.format('tags')), 201