@underpostnet/underpost
Version:
36 lines (32 loc) • 1.5 kB
JavaScript
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 };