Пример #1
0
    def login():
        try:
            req_data = request.get_json()
            data = user_schema.load(req_data, partial=True)

            if not data.get('email') or not data.get('password'):
                return get_response(
                    400, {
                        ErrorResponseMessages.CREDENTIALS_ERROR:
                        'Email and password are required'
                    })

            user = User.get_user_by_email(data.get('email'))

            if not user:
                return get_response(
                    401, {
                        ErrorResponseMessages.CREDENTIALS_ERROR:
                        'Wrong email or password'
                    })
            if not user.check_hash(data.get('password')):
                return get_response(
                    401, {
                        ErrorResponseMessages.CREDENTIALS_ERROR:
                        'Wrong email or password'
                    })

            ser_data_id = user_schema.dump(user).get('id')
            token = generate_token(ser_data_id)
            return get_response(200, {'token': token})

        except ValidationError as err:
            return get_response(
                400, {ErrorResponseMessages.VALIDATION_ERROR: err.messages})
Пример #2
0
    def update():
        try:
            req_data = request.get_json()
            data = user_schema.load(req_data, partial=True)

            user = User.get_one_user(g.user.get('id'))
            user.update(data)

            return get_response(200, user_schema.dump(user))

        except ValidationError as err:
            return get_response(
                400, {ErrorResponseMessages.VALIDATION_ERROR: err.messages})
Пример #3
0
    def create():
        try:
            req_data = request.get_json()
            data = meal_schema.load(req_data)

            meal = Meal(data, g.user.get('id'))
            meal.save()

            return get_response(201, meal_schema.dump(meal))

        except ValidationError as err:
            return get_response(
                400, {ErrorResponseMessages.VALIDATION_ERROR: err.messages})
Пример #4
0
    def update(meal_id):
        try:
            req_data = request.get_json()
            data = meal_schema.load(req_data, partial=True)

            meal = Meal.get_meal(meal_id)
            meal.update(data)

            return get_response(200, meal_schema.dump(meal))

        except ValidationError as err:
            return get_response(
                400, {ErrorResponseMessages.VALIDATION_ERROR: err.messages})
Пример #5
0
    def delete(meal_id):
        calendar_meals = CalendarMeal.get_calendar_by_meal(meal_id)
        for calendar_meal in calendar_meals:
            calendar_meal.delete()

        meal = Meal.get_meal(meal_id)
        meal.delete()

        return get_response(204)
Пример #6
0
    def decorated_auth(*args, **kwargs):
        if 'token' not in request.headers:
            return get_response(
                400, {ErrorResponseMessages.TOKEN_ERROR: 'Invalid token'})

        token = request.headers.get('token')

        try:
            data = jwt.decode(token, os.getenv('JWT_SECRET_KEY'))
        except jwt.InvalidTokenError:
            return get_response(
                400, {ErrorResponseMessages.TOKEN_ERROR: 'Invalid token'})

        user_id = data['sub']
        check_user = User.get_one_user(user_id)
        if not check_user:
            return get_response(
                400, {ErrorResponseMessages.TOKEN_ERROR: 'Invalid token'})

        g.user = {'id': user_id}
        return func(*args, **kwargs)
Пример #7
0
    def create():
        try:
            req_data = request.get_json()
            data = user_schema.load(req_data)
            user_in_db = User.get_user_by_email(data.get('email'))
            if user_in_db:
                message = {
                    ErrorResponseMessages.USER_EXISTS_ERROR:
                    'Email already exists'
                }
                return get_response(409, message)

            user = User(data)
            user.save()

            ser_data_id = user_schema.dump(user).get('id')
            token = generate_token(ser_data_id)
            return get_response(201, {'token': token})

        except ValidationError as err:
            return get_response(
                400, {ErrorResponseMessages.VALIDATION_ERROR: err.messages})
Пример #8
0
    def fetch():
        ingredients = UserIngredient.fetch_all_user_ingredients(
            g.user.get('id'))
        ser_ingredients = [ingredients_schema.dump(i) for i in ingredients]

        return get_response(200, ser_ingredients)
Пример #9
0
 def get_me():
     user = User.get_one_user(g.user.get('id'))
     ser_user = user_schema.dump(user)
     return get_response(200, ser_user)
Пример #10
0
 def delete():
     user = User.get_one_user(g.user.get('id'))
     user.delete()
     return get_response(204)
Пример #11
0
    def get_all():
        user_id = g.user.get('id')
        meals = Meal.get_all_meals_by_user(user_id)
        ser_meals = [meal_schema.dump(m) for m in meals]

        return get_response(200, ser_meals)
Пример #12
0
    def fetch(meal_id):
        meal = Meal.get_meal(meal_id)
        if meal.user_id != g.user.get('id'):
            return make_response(None, 403)

        return get_response(200, meal_schema.dump(meal))
Пример #13
0
    def delete(calendar_meal_id):
        meal = CalendarMeal.get_calendar_meal(calendar_meal_id)
        meal.delete()

        return get_response(204)
Пример #14
0
    def get_all():
        user_id = g.user.get('id')
        calendar_meals = CalendarMeal.get_calendar_meals_by_user(user_id)
        ser_meals = [calendar_meal_schema.dump(m) for m in calendar_meals]

        return get_response(201, ser_meals)