Skip to content

API Definition

Andres "Mateo" Ruiz Flores edited this page May 1, 2023 · 14 revisions

Table of Contents

/orders

/menu-item

/cutlery

/inventory

/reports

/orders

Create Order

Create Order Request

POST /orders
{
    "items": [
        "brown rice",
        "falafel",
        "drink",
        "tomato",
        "tahini"
    ]
}

Create Order Response

Successful Creation

201 Created

Returns: created object Example:

{
    "id": "74e359a6-d187-11ed-bf45-00155d04d6fd",
    "date_time": "2022-03-07 08:44:06.172087",
    "items": [
        "brown rice",
        "falafel",
        "drink",
        "tomato",
        "tahini"
    ],
    "price" : 8.34
}

Error

Will return error code + message.

Example:

400 Bad Request
{
    "error" : "Menu Item with name 'turkey' is not a valid Menu Item"
}

Get Order

Get Order Request

GET /orders/{id}

Get Order Response

Successful Request

200 Ok 

Returns: requested object Example:

{
    "id": "74e359a6-d187-11ed-bf45-00155d04d6fd",
    "date_time": "2022-03-07 08:44:06.172087",
    "items": [
        "brown rice",
        "falafel",
        "drink",
        "tomato",
        "tahini"
    ],
    "price" : 8.34
}

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error" : "Order with id '69420' not found"
}

Get All Orders

Get All Orders Request

GET /orders

Parameters: pageNumber=1, pageSize=100

Get All Orders Response

Successful Request

200 Ok 

Returns: all orders as list of order objects

Error

Will return error code.

Example:

500 Internal Server Error 

Update Order

Update Order Request

PUT /orders/{id}
{
     "id": "74e359a6-d187-11ed-bf45-00155d04d6fd",
    "date_time": "2022-03-07 08:44:06.172087",
    "items": [
        "brown rice",
        "falafel",
        "drink",
        "tomato",
    ]
}

Update Order Response

Successful Update

200 Ok 

Returns: updated object Example:

{
    "id": "74e359a6-d187-11ed-bf45-00155d04d6fd",
    "date_time": "2022-03-07 08:44:06.172087",
    "items": [
        "brown rice",
        "falafel",
        "drink",
        "tomato",
    ],
    "price" : 8.34
}

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error" : "Order with id '69420' not found"
}

Delete Order

Delete Order Request

DELETE /orders/{id}

Delete Order Response

Successful Deletion

204 No Content 

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error" : "Order with id '69420' not found"
}

/menu-item

Create Menu Item

Create Menu Item Request

POST /menu-item
{
    "name": "tortilla",
    "category": "base",
    "price": 1.00,
    "quantity": 2000,
    "Cutlery": [
        "plate"
    ]
}

Create Menu Item Response

Successful Creation

201 Created

Returns: created object Example:

{
    "name": "tortilla",
    "category": "base",
    "price": 1.00,
    "quantity": 2000,
    "Cutlery": [
        "plate"
    ]
}

Error

Will return error code + message.

Example:

400 Bad Request
{
    "error" : "Menu Item with name 'brown rice' already exists"
}

Get Menu Item By Name

Get Menu Item Request

GET /menu-item/{name}

Get Menu Item Response

Successful Request

200 Ok 

Returns: requested object Example:

{
    "name": "tortilla",
    "category": "base",
    "price": 1.00,
    "quantity": 2000,
    "Cutlery": [
        "plate"
    ]
}

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error" : "Menu Item 'Monster Energy' not found"
}

Get All Menu Items

Get All Menu Items Request

GET /menu-item

Get All Menu Items Response

Successful Request

200 Ok 

Returns: all menu items by category Example:

{
    "base": [
        {
            "name": "tortilla",
            "category": "base",
            "price": 1.00,
            "quantity": 2000,
            "Cutlery": [
                "plate"
            ]
        },
        {
            "name": "brown rice",
            "category": "base",
            "price": 0.00,
            "quantity": 1000,
            "Cutlery": [
                "plate",
                "fork"
            ]
        }
    ],
    "topping": [
        {
            "name": "tomato",
            "category": "topping",
            "price": 0.00,
            "quantity": 1000,
            "Cutlery": []
        }
    ]
}

Error

Will return error code.

Example:

500 Internal Server Error 

Update Menu Item

Update Menu Item Request

PUT /menu-item
{
    "name": "brown rice",
    "category": "base",
    "price": 0.00,
    "quantity": 1001,
    "Cutlery": [
        "plate",
        "fork"
    ]
}

Update Menu Item Response

Successful Update

200 Ok 

Returns: updated object Example:

{
    "name": "brown rice",
    "category": "base",
    "price": 0.00,
    "quantity": 1001,
    "Cutlery": [
        "plate",
        "fork"
    ]
}

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error" : "Menu Item 'burrito' not found"
}

Delete Menu Item

Delete Menu Item Request

DELETE /menu-item/{name}

Delete Menu Item Response

Successful Deletion

204 No Content 

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error" : "Menu Item 'cow' not found"
}

/cutlery

Create Cutlery Item

Create Cutlery Item Request

POST /cutlery
{
    "name": "plate",
    "quantity": 1000
}

Create Menu Item Response

Successful Creation

201 Created

Returns: created object Example:

{
    "name": "plate",
    "quantity": 1000
}

Error

Will return error code + message.

Example:

400 Bad Request
{
    "error": "Cutlery Item with name 'plate' already exists"
}

Get Cutlery By Name

Get Cutlery Request

GET /cutlery/{name}

Get Cutlery Response

Successful Request

200 Ok 

Returns: requested object Example:

{
    "name": "plate",
    "quantity": 1000
}

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error": "Cutlery Item 'Cow' not found"
}

Get All Cutlery Items

Get All Cutlery Items Request

GET /cutlery

Get All Menu Items Response

Successful Request

200 Ok 

Returns: list of cutlery Example:

{
    [
       {
            "name": "plate",
            "quantity": 1000
        },
        {
            "name": "bowl",
            "quantity": 1000
        }
    ]
}

Error

Will return error code.

Example:

500 Internal Server Error 

Update Cutlery Item

Update Cutlery Item Request

PUT /cutlery
{
    "name": "plate",
    "quantity": 2000
}

Update Menu Item Response

Successful Update

200 Ok 

Returns: updated object Example:

{
    "name": "plate",
    "quantity": 2000
}

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error": "Cutlery Item 'burrito' not found"
}

Delete Cutlery Item

Delete Cutlery Request

DELETE /cutlery/{name}

Delete Cutlery Response

Successful Deletion

204 No Content 

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error": "Cutlery Item 'cow' not found"
}

/inventory

Get All Inventory

Get All Inventory Request

GET /inventory

Get All Inventory Response

Successful Request

200 Ok 

Returns: all inventory Example:

{
    [
        {
            "name": "tortilla",
            "type": "menu item",
            "quantity": 2000,
        },
        {
            "name": "brown rice",
            "type": "menu item",
            "quantity": 1000,
        },
        {
            "name": "bowl",
            "type": "cutlery",
            "quantity": 2000,
        }
    ]
}

Error

Will return error code.

Example:

500 Internal Server Error 

Delete Inventory

Delete Inventory Request

DELETE /inventory
{
    "name": "plate",
    "type": "cutlery"
}

Delete Inventory Response

Successful Deletion

204 No Content 

Error

Will return error code + message.

Example:

404 Not Found 
{
    "error": "Inventory Cutlery 'hand' not found"
}

Reports

Get X Report

Get X Report Request

GET /reports/xreport

Get X Report Response

Successful Request

200 Ok 
{
     "sales": 1240.21
}

Failed Request

Will return error code and error.

Example:

500 Internal Server Error 
{
    "error": "internal error occurred when getting x report"
}

Get Z Report

Get Z Report Request

GET /reports/zreport

parameters: pageNumber = 100, pageSize = 50

Get Z Report Response

Successful Request

Returns 200 response and sales history.

200 Ok 
{
   [
     "02-28-2022": 1391.03,
     "03-01-2022": 1121.02,
     "04-02-2022": 1191.04,
     "05-03-2022": 1691.08,
     "06-04-2022": 2391.43
   ]
}

Failed Request

Will return error code and error.

Example:

500 Internal Server Error 
{
    "error": "internal error occurred when getting z report"
}

Get Excess Report

Get Excess Report Request

POST /reports/excess-report
{
    "fromDate": "2023-03-21"  
}

Successful Request

200 Ok 
{
  [
    {
        "menuItemName": "extra meat",
        "quantity": 2000,
        "amountSold": 0
    },
    {
        "menuItemName": "extra dressing",
        "quantity": 2000,
        "amountSold": 0
    }
  ]
}

Failed Request

Will return error code and error.

Example:

500 Internal Server Error 
{
    "error": "internal error occurred when getting excess report"
}

Get Sales Report

Get Sales Report Request

POST /reports/sales-report
{
    "startDate": "2023-03-21",
    "endDate": "2023-02-21",
    "menuItem": "pita"
}

Successful Request

200 Ok 
{
  [
    {
        "sold": 139,
        "date": "2023-01-21T00:00:00"
    },
    {
        "sold": 131,
        "date": "2023-01-22T00:00:00"
    },
    {
        "sold": 77,
        "date": "2023-01-23T00:00:00"
    },
    {
        "sold": 155,
        "date": "2023-01-24T00:00:00"
    },
    {
        "sold": 0,
        "date": "2023-01-25T00:00:00"
    }
  ]
}

Failed Request

Will return error code and error.

Example:

500 Internal Server Error 
{
    "error": "internal error occurred when getting sales report"
}
Clone this wiki locally