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)
Beispiel #3
0
 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)