示例#1
0
    def post(self, name):
        # if already exists - error
        if ItemModel.find_by_name(name):
            return {
                'message': f'An item with naem {name} already exists'
            }, 400  # 400 - bad request

        # improvement 1 - get json payload/body - no need since we now have reqparse
        # data = request.get_json()  # this will throw error if body isn't json or content type is not json
        # data = request.get_json(force=True)  # doesn't care about content/type header - nice but dangerous
        # data = request.get_json(silent=True)  # doesn't throw error - just returns None

        data = Item.parser.parse_args()
        item = ItemModel(name, data['price'], data['store_id'])

        # calling class method to inset item into db
        try:
            item.save_to_db()
        except Exception as e:
            return {
                'message': "an error occurred on db insertion"
            }, 500  # 500 - internal server error

        # we want to let client know that post was succesful
        return item.json(), 201
示例#2
0
 def get(self, name):
     item = ItemModel.find_by_name(
         name
     )  # can call a classmethod with self. i think only in class definition
     if item:
         return item.json()
     return {'message': 'item not found ey!'}, 404
示例#3
0
    def put(self, name):
        data = self.parser.parse_args()
        item = ItemModel.find_by_name(name)
        if item is None:
            item = ItemModel(name, **data)
        else:
            item.price = data['price']

        item.save_to_db()
        return {"message": "Item updated successfully"}
示例#4
0
    def delete(self, name):
        claims = get_jwt_claims()
        if not claims['is_admin']:
            return {'message': 'Admin privilege required'}

        item = ItemModel.find_by_name(name)
        if item:
            item.delete_from_db()

        return {"message": "Item Deleted!"}
示例#5
0
    def put(self, name):
        data = Item.parser.parse_args()

        item = ItemModel.find_by_name(name)

        if item is None:
            item = ItemModel(name, data['price'], data['store_id'])
        else:
            item.price = data['price']

        item.save_to_db()

        return item.json()
示例#6
0
    def post(self, name):
        if ItemModel.find_by_name(name):
            return {"message": "Item already exists"}, 400

        data = Item.parser.parse_args()

        item = ItemModel(name, **data)
        try:
            ItemModel.save_to_db(item)
        except:
            return {"message": "An error occurred"}, 500

        return {"message": "Item Created successfully"}
示例#7
0
    def delete(self, name):
        item = ItemModel.find_by_name(name)
        if item:
            item.delete_from_db()

        return {'message': ' item deleted baby ! '}
示例#8
0
 def get(self, name):
     row = ItemModel.find_by_name(name)
     if row:
         return row.json()
     return {"message": "Item not found"}