コード例 #1
0
    def post(self) -> dict:
        user_params = self.params()
        user = session.query(User).filter(User.active).filter(User.email == user_params['email']).first()

        if user:
            password = user.password.encode()

            if bcrypt.check_password_hash(password, user_params['password']):
                user.authenticated = True
                session.commit()

                access_token = create_access_token(user.email)
                refresh_token = create_refresh_token(user.email)

                response = {
                    "access_token": access_token,
                    "refresh_token": refresh_token,
                    "user": user.id
                }

                response = BasicResponse(response)
                return BasicResponseSchema().dump(response)
            else:
                raise BasicError(message='Wrong password.', status=400)

        raise BasicError(message='User not found.', status=400)
コード例 #2
0
    def delete(self, id: int) -> dict:
        ingredient = session.query(Ingredient).get(id)
        session.delete(ingredient)
        session.commit()

        response = BasicResponse(None)
        return BasicResponseSchema().dump(response)
コード例 #3
0
ファイル: __init__.py プロジェクト: zakharovadaria/receipts
def other_error_handler(error):
    print(error)
    basic_error_element = BasicError(parent_error=error)
    basic_response = BasicResponse(error=basic_error_element)
    response = jsonify(BasicResponseSchema().dump(basic_response))
    response.status_code = 500
    return response
コード例 #4
0
    def post(self) -> dict:
        create_params = self.create_params()
        ingredient = Ingredient(**create_params)

        session.add(ingredient)
        session.commit()

        ingredient = IngredientClientSchema().dump(ingredient)
        response = BasicResponse(ingredient)
        return BasicResponseSchema().dump(response)
コード例 #5
0
    def put(self, id: int) -> dict:
        ingredient = session.query(Ingredient).get(id)

        update_params = self.update_params()

        for key, value in update_params.items():
            setattr(ingredient, key, value)

        session.commit()

        ingredient = IngredientClientSchema().dump(ingredient)
        response = BasicResponse(ingredient)
        return BasicResponseSchema().dump(response)
コード例 #6
0
    def get(self) -> dict:
        user_id = self.search_params()

        if user_id:
            user = session.query(User).get(user_id)
            if not user:
                raise BasicError('User not found.', 404)
            receipts = user.receipts
        else:
            receipts = session.query(Receipt).all()

        receipts = ReceiptClientSchema().dump(receipts, many=True)
        response = BasicResponse(receipts)
        return BasicResponseSchema().dump(response)
コード例 #7
0
    def post(self, id: int) -> dict:
        current_user = get_jwt_identity()
        user = session.query(User).filter(User.email == current_user).one()

        receipt = session.query(Receipt).get(id)

        if not receipt:
            raise BasicError('Receipt not found.', 404)

        user.receipts.append(receipt)

        session.add(user)
        session.commit()

        response = BasicResponse()

        return BasicResponseSchema().dump(response)
コード例 #8
0
    def post(self) -> dict:
        create_params = self.create_params()

        hash_password = bcrypt.generate_password_hash(
            create_params["password"])
        hash_password = hash_password.decode('utf-8')
        create_params["password"] = hash_password

        user = User(**create_params)

        try:
            session.add(user)
            session.commit()

            user = UserClientSchema().dump(user)
            response = BasicResponse(user)
        except IntegrityError:
            session.rollback()
            raise BasicError(message='email is already exist.', status=400)

        return BasicResponseSchema().dump(response)
コード例 #9
0
    def put(self, id: int) -> dict:
        user = session.query(User).get(id)

        update_params = self.update_params()
        if update_params.get('password'):
            hash_password = bcrypt.generate_password_hash(
                update_params["password"])
            hash_password = hash_password.decode('utf-8')
            update_params["password"] = hash_password

        for key, value in update_params.items():
            setattr(user, key, value)

        try:
            session.commit()

            user = UserClientSchema().dump(user)
            response = BasicResponse(user)
        except IntegrityError:
            session.rollback()
            raise BasicError(message='email is already exist.', status=400)

        return BasicResponseSchema().dump(response)
コード例 #10
0
 def get(self, id: int) -> dict:
     ingredient = session.query(Ingredient).get(id)
     ingredient = IngredientClientSchema().dump(ingredient)
     response = BasicResponse(ingredient)
     return BasicResponseSchema().dump(response)
コード例 #11
0
 def get(self) -> dict:
     ingredients = session.query(Ingredient).all()
     ingredients = IngredientClientSchema().dump(ingredients, many=True)
     response = BasicResponse(ingredients)
     return BasicResponseSchema().dump(response)
コード例 #12
0
ファイル: __init__.py プロジェクト: zakharovadaria/receipts
def basic_error_handler(error):
    basic_response = BasicResponse(error=error)
    response = jsonify(BasicResponseSchema().dump(basic_response))
    response.status_code = error.status
    return response
コード例 #13
0
 def get(self, id: int) -> dict:
     receipt = session.query(Receipt).get(id)
     receipt = ReceiptClientSchema().dump(receipt)
     response = BasicResponse(receipt)
     return BasicResponseSchema().dump(response)
コード例 #14
0
 def get(self, id: int) -> dict:
     user = session.query(User).get(id)
     user = UserClientSchema().dump(user)
     response = BasicResponse(user)
     return BasicResponseSchema().dump(response)
コード例 #15
0
 def get(self) -> dict:
     users = session.query(User).all()
     users = UserClientSchema().dump(users, many=True)
     response = BasicResponse(users)
     return BasicResponseSchema().dump(response)