The Restaurant APIs will allow users to:
- Create, view, update, and delete menus
- Create, view, update, and delete menu items
- Create, view, update, and delete employees
- Create, view, update, and delete employee's timesheets
-
Employee
- id - Integer, primary key, required
- name - Text, required
- position - Text, required
- wage - Integer, required
- is_current_employee - Integer, defaults to
1
-
Timesheet
- id - Integer, primary key, required
- hours - Integer, required
- rate - Integer, required
- date - Integer, required
- employee_id - Integer, foreign key, required
-
Menu
- id - Integer, primary key, required
- title - Text, required
-
MenuItem
- id - Integer, primary key, required
- name - Text, required
- description - Text, optional
- inventory - Integer, required
- price - Integer, required
- menu_id - Integer, foreign key, required
Deployed on heroku, use for the root route https://secure-reaches-80892.herokuapp.com/
/api/employees
- GET
- Returns a 200 response containing all saved currently-employed employees (
is_current_employee
is equal to1
) on theemployees
property of the response body
- Returns a 200 response containing all saved currently-employed employees (
- POST
- Creates a new employee with the information from the
employee
property of the request body and saves it to the database. Returns a 201 response with the newly-created employee on theemployee
property of the response body - If any required fields are missing, returns a 400 response
- Creates a new employee with the information from the
/api/employees/:employeeId
- GET
- Returns a 200 response containing the employee with the supplied employee ID on the
employee
property of the response body - If an employee with the supplied employee ID doesn't exist, returns a 404 response
- Returns a 200 response containing the employee with the supplied employee ID on the
- PUT
- Updates the employee with the specified employee ID using the information from the
employee
property of the request body and saves it to the database. Returns a 200 response with the updated employee on theemployee
property of the response body - If any required fields are missing, returns a 400 response
- If an employee with the supplied employee ID doesn't exist, returns a 404 response
- Updates the employee with the specified employee ID using the information from the
- DELETE
- Updates the employee with the specified employee ID to be unemployed (
is_current_employee
equal to0
). Returns a 200 response. - If an employee with the supplied employee ID doesn't exist, returns a 404 response
- Updates the employee with the specified employee ID to be unemployed (
/api/employees/:employeeId/timesheets
- GET
- Returns a 200 response containing all saved timesheets related to the employee with the supplied employee ID on the
timesheets
property of the response body - If an employee with the supplied employee ID doesn't exist, returns a 404 response
- Returns a 200 response containing all saved timesheets related to the employee with the supplied employee ID on the
- POST
- Creates a new timesheet, related to the employee with the supplied employee ID, with the information from the
timesheet
property of the request body and saves it to the database. Returns a 201 response with the newly-created timesheet on thetimesheet
property of the response body - If any required fields are missing, returns a 400 response
- If an employee with the supplied employee ID doesn't exist, returns a 404 response
- Creates a new timesheet, related to the employee with the supplied employee ID, with the information from the
/api/employees/:employeeId/timesheets/:timesheetId
- PUT
- Updates the timesheet with the specified timesheet ID using the information from the
timesheet
property of the request body and saves it to the database. Returns a 200 response with the updated timesheet on thetimesheet
property of the response body - If any required fields are missing, returns a 400 response
- If an employee with the supplied employee ID doesn't exist, returns a 404 response
- If an timesheet with the supplied timesheet ID doesn't exist, returns a 404 response
- Updates the timesheet with the specified timesheet ID using the information from the
- DELETE
- Deletes the timesheet with the supplied timesheet ID from the database. Returns a 204 response.
- If an employee with the supplied employee ID doesn't exist, returns a 404 response
- If an timesheet with the supplied timesheet ID doesn't exist, returns a 404 response
/api/menus
- GET
- Returns a 200 response containing all saved menus on the
menus
property of the response body
- Returns a 200 response containing all saved menus on the
- POST
- Creates a new menu with the information from the
menu
property of the request body and saves it to the database. Returns a 201 response with the newly-created menu on themenu
property of the response body - If any required fields are missing, returns a 400 response
- Creates a new menu with the information from the
/api/menus/:menuId
- GET
- Returns a 200 response containing the menu with the supplied menu ID on the
menu
property of the response body - If a menu with the supplied menu ID doesn't exist, returns a 404 response
- Returns a 200 response containing the menu with the supplied menu ID on the
- PUT
- Updates the menu with the specified menu ID using the information from the
menu
property of the request body and saves it to the database. Returns a 200 response with the updated menu on themenu
property of the response body - If any required fields are missing, returns a 400 response
- If a menu with the supplied menu ID doesn't exist, returns a 404 response
- Updates the menu with the specified menu ID using the information from the
- DELETE
- Deletes the menu with the supplied menu ID from the database if that menu has no related menu items. Returns a 204 response.
- If the menu with the supplied menu ID has related menu items, returns a 400 response.
- If a menu with the supplied menu ID doesn't exist, returns a 404 response
/api/menus/:menuId/menu-items
- GET
- Returns a 200 response containing all saved menu items related to the menu with the supplied menu ID on the
menu items
property of the response body - If a menu with the supplied menu ID doesn't exist, returns a 404 response
- Returns a 200 response containing all saved menu items related to the menu with the supplied menu ID on the
- POST
- Creates a new menu item, related to the menu with the supplied menu ID, with the information from the
menuItem
property of the request body and saves it to the database. Returns a 201 response with the newly-created menu item on themenuItem
property of the response body - If any required fields are missing, returns a 400 response
- If a menu with the supplied menu ID doesn't exist, returns a 404 response
- Creates a new menu item, related to the menu with the supplied menu ID, with the information from the
/api/menus/:menuId/menu-items/:menuItemId
- PUT
- Updates the menu item with the specified menu item ID using the information from the
menuItem
property of the request body and saves it to the database. Returns a 200 response with the updated menu item on themenuItem
property of the response body - If any required fields are missing, returns a 400 response
- If a menu with the supplied menu ID doesn't exist, returns a 404 response
- If a menu item with the supplied menu item ID doesn't exist, returns a 404 response
- Updates the menu item with the specified menu item ID using the information from the
- DELETE
- Deletes the menu item with the supplied menu item ID from the database. Returns a 204 response.
- If a menu with the supplied menu ID doesn't exist, returns a 404 response
- If a menu item with the supplied menu item ID doesn't exist, returns a 404 response
For testing purpose, I have written test cases using mocha and chai. So, fork this project, install the dependencies and run npm test