def delete_inventory_item_by_sku(inv_sku): """ Delete an Inventory Item This endpoint will delete and inventory item based the sku specified in the path """ app.logger.info("Request to delete inventory item with sku: ", inv_sku) inv = Inventory.find_by_sku(inv_sku) if inv: inv.delete() return make_response("", status.HTTP_204_NO_CONTENT)
def get_inventory_item_by_sku(inv_sku): """ Retrieve a record for single Inventory row This endpoint will return an Inventory row based on its sku """ app.logger.info("Request for Item with sku: %", inv_sku) inv = Inventory.find_by_sku(inv_sku) if not inv: raise NotFound( "Inventory Item with sku '{}' was not found.".format(inv_sku)) results = [inv_item.serialize() for inv_item in inv] return make_response(jsonify(results), status.HTTP_200_OK)
def test_find_by_sku(self): """ Find Inventory items by sku """ Inventory(name="Rolex Watch", sku="R1232020", quantity=10, restockLevel=12).create() Inventory(name="Cartier Watch", sku="C1232020", quantity=12, restockLevel=6).create() inv_items = Inventory.find_by_sku("R1232020") self.assertEqual(inv_items[0].name, "Rolex Watch") self.assertEqual(inv_items[0].quantity, 10) self.assertEqual(inv_items[0].restockLevel, 12)
def list_inventory(): """ Returns entire Inventory """ app.logger.info("Request for entire inventory") inventory = [] sku = request.args.get("sku") name = request.args.get("name") if sku: inventory = Inventory.find_by_sku(sku) elif name: inventory = Inventory.find_by_name(name) else: inventory = Inventory.all() results = [inv.serialize() for inv in inventory] return make_response(jsonify(results), status.HTTP_200_OK)
def update_inventory_by_sku(inv_sku): """ Update an inventory item This endpoint will update an inventory item based on the body that is posted """ app.logger.info("Request to update inventory with sku: %s", inv_sku) check_content_type("application/json") inventory = Inventory.find_by_sku( inv_sku).first() #Could return multiple items, we will take first update_item = inventory.deserialize(request.get_json()) if not inventory: raise NotFound( "Inventory with sku '{}' was not found.".format(inv_sku)) inventory.name = update_item.name inventory.sku = update_item.sku inventory.quantity = update_item.quantity inventory.restockLevel = update_item.restockLevel inventory.save() return make_response(jsonify(inventory.serialize()), status.HTTP_200_OK)