UNPKG

northwind-rest-api

Version:

Local REST API Exposing 'Northwind Traders' Database.

100 lines (83 loc) 2.73 kB
const express = require("express"); const Employee = require("../models/employee"); const employeesLogic = require("../business-logic/employees-logic"); const router = express.Router(); // Get all employees: router.get("/employees", async (request, response) => { try { // Logic: const employees = await employeesLogic.getAllEmployees(); // Success: response.json(employees); } catch (err) { response.status(500).send(err.message); } }); // Get one employee: router.get("/employees/:id([0-9]+)", async (request, response) => { try { // Data: const id = +request.params.id; // Logic: const employee = await employeesLogic.getOneEmployee(id); if(!employee) return response.status(404).send(`id ${id} not found.`); // Success: response.json(employee); } catch (err) { response.status(500).send(err.message); } }); // Add employee: router.post("/employees", async (request, response) => { try { // Data: const employee = new Employee(request.body); // Validation: const errors = employee.validate(); if (errors) return response.status(400).send(errors); // Logic: const addedEmployee = await employeesLogic.addEmployee(employee, request.files?.image); // Success: response.status(201).json(addedEmployee); } catch (err) { response.status(500).send(err.message); } }); // Update employee: router.put("/employees/:id([0-9]+)", async (request, response) => { try { // Data: const id = +request.params.id; request.body.id = id; const employee = new Employee(request.body); // Validation: const errors = employee.validate(); if (errors) return response.status(400).send(errors); // Logic: const updatedEmployee = await employeesLogic.updateEmployee(employee, request.files?.image); if(!updatedEmployee) return response.status(404).send(`id ${id} not found.`); // Success: response.json(updatedEmployee); } catch (err) { response.status(500).send(err.message); } }); // Delete employee: router.delete("/employees/:id([0-9]+)", async (request, response) => { try { // Data: const id = +request.params.id; // Logic: await employeesLogic.deleteEmployee(id); // Success: response.sendStatus(204); } catch (err) { response.status(500).send(err.message); } }); module.exports = router;