Advertisement
Guest User

Untitled

a guest
Oct 17th, 2019
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.48 KB | None | 0 0
  1. from flask_restful import Resource, reqparse
  2. from models.item import ItemModel
  3.  
  4.  
  5. class Item(Resource):
  6.     parser = reqparse.RequestParser()
  7.     parser.add_argument('price',
  8.                         type=float,
  9.                         required=True,
  10.                         help="This field cannot be left blank!")
  11.  
  12.     def get(self, name):
  13.         item = ItemModel.find_by_name(name)
  14.         if item:
  15.             return item.json()
  16.         return {'message': 'Item not found'}, 404
  17.  
  18.     def post(self, name):
  19.         if ItemModel.find_by_name(name):
  20.             return {'message': "An item with name '{}' already exists.".format(name)}, 400
  21.  
  22.         data = Item.parser.parse_args()
  23.  
  24.         item = ItemModel(name, **data)
  25.  
  26.         try:
  27.             item.save_to_db()
  28.         except:
  29.             return {"message": "An error occurred inserting the item."}, 500
  30.  
  31.         return item.json(), 201
  32.  
  33.     def delete(self, name):
  34.         item = ItemModel.find_by_name(name)
  35.         if item:
  36.             item.delete_from_db()
  37.  
  38.         return {'message': 'Item deleted'}
  39.  
  40.     def put(self, name):
  41.         data = Item.parser.parse_args()
  42.  
  43.         item = ItemModel.find_by_name(name)
  44.  
  45.         if item is None:
  46.             item = ItemModel(name, **data)
  47.         else:
  48.             item.price = data['price']
  49.  
  50.         item.save_to_db()
  51.  
  52.         return item.json()
  53.  
  54.  
  55. class ItemList(Resource):
  56.     def get(self):
  57.         return {'items': [x.json() for x in ItemModel.query.all()]}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement