UNPKG

northwind-rest-api

Version:

Local REST API Exposing Northwind Database.

100 lines (83 loc) 2.73 kB
const express = require("express"); const Supplier = require("../models/supplier"); const suppliersLogic = require("../business-logic/suppliers-logic"); const router = express.Router(); // Get all suppliers: router.get("/suppliers", async (request, response) => { try { // Logic: const suppliers = await suppliersLogic.getAllSuppliers(); // Success: response.json(suppliers); } catch (err) { response.status(500).send(err.message); } }); // Get one supplier: router.get("/suppliers/:id([0-9]+)", async (request, response) => { try { // Data: const id = +request.params.id; // Logic: const supplier = await suppliersLogic.getOneSupplier(id); if(!supplier) return response.status(404).send(`id ${id} not found.`); // Success: response.json(supplier); } catch (err) { response.status(500).send(err.message); } }); // Add supplier: router.post("/suppliers", async (request, response) => { try { // Data: const supplier = new Supplier(request.body); // Validation: const errors = supplier.validate(); if (errors) return response.status(400).send(errors); // Logic: const addedSupplier = await suppliersLogic.addSupplier(supplier, request.files?.image); // Success: response.status(201).json(addedSupplier); } catch (err) { response.status(500).send(err.message); } }); // Update supplier: router.put("/suppliers/:id([0-9]+)", async (request, response) => { try { // Data: const id = +request.params.id; request.body.id = id; const supplier = new Supplier(request.body); // Validation: const errors = supplier.validate(); if (errors) return response.status(400).send(errors); // Logic: const updatedSupplier = await suppliersLogic.updateSupplier(supplier, request.files?.image); if(!updatedSupplier) return response.status(404).send(`id ${id} not found.`); // Success: response.json(updatedSupplier); } catch (err) { response.status(500).send(err.message); } }); // Delete supplier: router.delete("/suppliers/:id([0-9]+)", async (request, response) => { try { // Data: const id = +request.params.id; // Logic: await suppliersLogic.deleteSupplier(id); // Success: response.sendStatus(204); } catch (err) { response.status(500).send(err.message); } }); module.exports = router;