Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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
Exemplo n.º 11
0
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
Exemplo n.º 12
0
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
Exemplo n.º 13
0
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
Exemplo n.º 14
0
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
Exemplo n.º 15
0
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
Exemplo n.º 16
0
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
Exemplo n.º 17
0
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
Exemplo n.º 18
0
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
Exemplo n.º 19
0
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
Exemplo n.º 20
0
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
Exemplo n.º 21
0
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
Exemplo n.º 22
0
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
Exemplo n.º 23
0
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
Exemplo n.º 24
0
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
Exemplo n.º 25
0
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