UNPKG

@practica/create-node-app

Version:

Create Node.js app that is packed with best practices AND strive for simplicity

34 lines (33 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cleanupData = exports.deleteOrder = exports.addOrder = exports.getOrderById = void 0; const logger_1 = require("@practica/logger"); const country_model_1 = require("./models/country-model"); const order_model_1 = require("./models/order-model"); // ️️️✅ Best Practice: The repository pattern - Wrap the entire DB layer with a simple interface that returns plain JS objects async function getOrderById(id) { logger_1.logger.info(`Getting order by id ${id}`); const foundOrder = await (0, order_model_1.getOrderModel)().findOne({ where: { id }, include: (0, country_model_1.getCountryModel)(), // ✅ Best Practice: The data access layer should return a plain JS object and avoid leaking DB narratives outside // The 'Raw' option below instructs to include only pure data within the response raw: true, nest: false, }); return foundOrder; } exports.getOrderById = getOrderById; async function addOrder(orderDetails) { const addingResponse = await (0, order_model_1.getOrderModel)().create(orderDetails); return addingResponse; } exports.addOrder = addOrder; async function deleteOrder(orderIdToDelete) { await (0, order_model_1.getOrderModel)().destroy({ where: { id: orderIdToDelete } }); } exports.deleteOrder = deleteOrder; async function cleanupData() { await (0, order_model_1.getOrderModel)().truncate(); } exports.cleanupData = cleanupData;