UNPKG

@underpostnet/underpost

Version:
36 lines (32 loc) 1.5 kB
import { DataBaseProvider } from '../../db/DataBaseProvider.js'; import { loggerFactory } from '../../server/logger.js'; import { shellExec } from '../../server/process.js'; const logger = loggerFactory(import.meta); const CoreService = { post: async (req, res, options) => { /** @type {import('./core.model.js').CoreModel} */ const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core; if (req.path.startsWith('/sh')) { if (req.body.stdout) return shellExec(req.body.sh, { stdout: true }); shellExec(req.body.sh, { async: true }); return 'Command "' + req.body.sh + '" running'; } return await new Core(req.body).save(); }, get: async (req, res, options) => { /** @type {import('./core.model.js').CoreModel} */ const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core; return await Core.findById(req.params.id); }, put: async (req, res, options) => { /** @type {import('./core.model.js').CoreModel} */ const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core; return await Core.findByIdAndUpdate(req.params.id, req.body); }, delete: async (req, res, options) => { /** @type {import('./core.model.js').CoreModel} */ const Core = DataBaseProvider.instance[`${options.host}${options.path}`].mongoose.models.Core; return await Core.findByIdAndDelete(req.params.id); }, }; export { CoreService };