예제 #1
0
 def delete(self, id):
     item = ItemModel.find_by_id(id)
     if item:
         if item.user_id == get_jwt_identity():
             try:
                 item.delete_from_db()
             except:
                 return {'message': 'This item cannot be deleted.'}, 403
             return {'message': 'Item deleted successfully.'}, 204
         return {'message': 'This user cannot delete this item.'}, 403
     return {'message': 'There is no item with the given id.'}
예제 #2
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('id',
                            type=int,
                            required=True,
                            help="This field cannot be left blank!")
        parser.add_argument('login',
                            type=str,
                            required=True,
                            help="This field cannot be left blank!")
        data = parser.parse_args()
        user_token, error, code = validate_token(request.headers)
        if error:
            return error, code

        token = TokenModel.find_by_token(user_token)
        if not token:
            return {"message": "Token is incorrect"}, 403

        if not ItemModel.find_by_id(data['id'], token.user_id):
            return {
                'message':
                "An item with id '{}' does not exist.".format(data['id'])
            }, 400

        if not UserModel.find_by_login(data['login']):
            return {"message": "A user with that login does not exist"}, 400

        if UserModel.find_by_login(data['login']).id == token.user_id:
            return {"message": "You can not transfer item to yourself"}, 400

        transfer_user = UserModel.find_by_login(data['login']).id
        transfer_item = TransferModel.save_to_db(transfer_user, data['id'])
        if transfer_item == "true":
            return {"message": "Item has already been transfered"}, 400

        response = "http://localhost:5000/get?id={0}".format(data['id'])

        return {"message": response}, 200
예제 #3
0
    def post(self):
        data = self.parser.parse_args()
        data['user_id'] = get_jwt_identity()
        if FriendModel.find_by_id(data['friend_id']) is None:
            return {
                'message': f'There is no friend with id {data["friend_id"]}'
            }

        if ItemModel.find_by_id(data['item_id']) is None:
            return {'message': f'There is no item with id {data["item_id"]}'}

        data['loan_type'] = 0 if data['loan_type'] == 'friend_to_user' else 1
        loan = LoanModel(**data)

        try:
            loan.save_to_db()
        except:
            return {
                'message': 'The application could not save this loan.'
            }, 500

        return loan.describe()