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.'}
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
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()