def delete(cls, name: str): item = ItemModel.find_by_name(name) if item: item.delete_from_db() return {"message": ITEM_DELETED}, 200 return {"message": ITEM_NOT_FOUND}, 404
def delete(cls, name: str): claims = get_jwt_claims() if not claims["is_admin"]: return {"message": "Admin privilege required."}, 401 item = ItemModel.find_by_name(name) if item: item.delete_from_db() return {"message": ITEM_DELETED}, 200 return {"message": ITEM_NOT_FOUND}, 404
def put(cls, name: str): item_json = request.get_json() item = ItemModel.find_by_name(name) if item: item.price = item_json["price"] else: item_json["name"] = name item = item_schema.load(item_json) item.save_to_db() return item_schema.dump(item), 200
def post(cls, name: str): if ItemModel.find_by_name(name): return {"message": NAME_ALREADY_EXISTS.format(name)}, 400 item_json = request.get_json() item_json["name"] = name item = item_schema.load(item_json) try: item.save_to_db() except: return {"message": ERROR_INSERTING}, 500 return item_schema.dump(item), 201
def put(self, name: str): data = Item.parser.parse_args() item = ItemModel.find_by_name(name) if item: item.price = data["price"] else: item = ItemModel(name, **data) item.save_to_db() return item.json(), 200
def get(cls): """ Here we get the JWT identity, and then if the user is logged in (we were able to get an identity) we return the entire item list. Otherwise we just return the item names. This could be done with e.g. see orders that have been placed, but not see details about the orders unless the user has logged in. """ user_id = get_jwt_identity() items = [item.json() for item in ItemModel.find_all()] if user_id: return {"items": items}, 200 return ( { "items": [item["name"] for item in items], "message": "More data available if you log in.", }, 200, )
def post(cls, name: str): if ItemModel.find_by_name(name): return ( { "message": NAME_ALREADY_EXISTS.format(name) }, 400, ) data = Item.parser.parse_args() item = ItemModel(name, **data) try: item.save_to_db() except: return {"message": ERROR_INSERTING}, 500 return item.json(), 201
def get(cls): return {"items": item_list_schema.dump(ItemModel.find_all())}, 200
def get(cls, name: str): item = ItemModel.find_by_name(name) if item: return item_schema.dump(item), 200 return {"message": ITEM_NOT_FOUND}, 404
def get(cls, name: str): item = ItemModel.find_by_name(name) if item: return item.json(), 200 return {"message": ITEM_NOT_FOUND}, 404