UNPKG

@underpostnet/underpost

Version:

Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orc

43 lines (36 loc) 1.72 kB
import { DataBaseProviderService } from '../../db/DataBaseProvider.js'; import { loggerFactory } from '../../server/logger.js'; import { DataQuery } from '../../server/data-query.js'; const logger = loggerFactory(import.meta); class DefaultService { static post = async (req, res, options) => { /** @type {import('./default.model.js').DefaultModel} */ const Default = DataBaseProviderService.getModel("Default", options); return await new Default(req.body).save(); }; static get = async (req, res, options) => { /** @type {import('./default.model.js').DefaultModel} */ const Default = DataBaseProviderService.getModel("Default", options); if (req.params.id) return await Default.findById(req.params.id); // Parse query parameters using DataQuery helper const { query, sort, skip, limit, page } = DataQuery.parse(req.query); const [data, total] = await Promise.all([ Default.find(query).sort(sort).limit(limit).skip(skip), Default.countDocuments(query), ]); const totalPages = Math.ceil(total / limit); return { data, total, page, totalPages }; }; static put = async (req, res, options) => { /** @type {import('./default.model.js').DefaultModel} */ const Default = DataBaseProviderService.getModel("Default", options); return await Default.findByIdAndUpdate(req.params.id, req.body); }; static delete = async (req, res, options) => { /** @type {import('./default.model.js').DefaultModel} */ const Default = DataBaseProviderService.getModel("Default", options); if (req.params.id) return await Default.findByIdAndDelete(req.params.id); else return await Default.deleteMany(); }; } export { DefaultService };