123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import async from "async";
- import { isAdminRequired } from "./hooks";
- import moduleManager from "../../index";
- const UtilsModule = moduleManager.modules.utils;
- const WSModule = moduleManager.modules.ws;
- export default {
- getModules: isAdminRequired(function getModules(session, cb) {
- async.waterfall(
- [
- next => {
- next(null, UtilsModule.moduleManager.modules);
- },
- (modules, next) => {
- // this.log(modules, next);
- next(
- null,
- Object.keys(modules).map(moduleName => {
- const module = modules[moduleName];
- return {
- name: module.name,
- status: module.status,
- stage: module.stage,
- jobsInQueue: module.jobQueue.lengthQueue(),
- jobsInProgress: module.jobQueue.lengthRunning(),
- jobsPaused: module.jobQueue.lengthPaused(),
- concurrency: module.jobQueue.concurrency
- };
- })
- );
- }
- ],
- async (err, modules) => {
- if (err && err !== true) {
- err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);
- this.log("ERROR", "GET_MODULES", `User ${session.userId} failed to get modules. '${err}'`);
- cb({ status: "error", message: err });
- } else {
- this.log("SUCCESS", "GET_MODULES", `User ${session.userId} has successfully got the modules info.`);
- cb({
- status: "success",
- message: "Successfully got modules.",
- data: { modules }
- });
- }
- }
- );
- }),
- getModule: isAdminRequired(function getModule(session, moduleName, cb) {
- async.waterfall(
- [
- next => {
- next(null, UtilsModule.moduleManager.modules[moduleName]);
- }
- ],
- async (err, module) => {
- // this.log(module.runningJobs);
- if (err && err !== true) {
- err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);
- this.log("ERROR", "GET_MODULE", `User ${session.userId} failed to get module. '${err}'`);
- cb({ status: "error", message: err });
- } else {
- this.log("SUCCESS", "GET_MODULE", `User ${session.userId} has successfully got the module info.`);
- cb({
- status: "success",
- message: "Successfully got module info.",
- data: {
- // runningTasks: module.jobQueue.runningTasks,
- // pausedTasks: module.jobQueue.pausedTasks,
- // queuedTasks: module.jobQueue.queue,
- jobStatistics: module.jobStatistics
- }
- });
- }
- }
- );
- }),
- getRooms(session, cb) {
- WSModule.runJob("GET_ROOMS_FOR_SOCKET", { socketId: session.socketId })
- .then(response => {
- this.log("SUCCESS", "GET_ROOMS", `User ${session.userId} has successfully got the module info.`);
- cb({
- status: "success",
- message: "Successfully got rooms.",
- data: {
- rooms: response
- }
- });
- })
- .catch(async err => {
- err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);
- this.log("ERROR", "GET_ROOMS", `Failed to get rooms. '${err}'`);
- cb({ status: "error", message: err });
- });
- }
- };
|