diff --git a/src/backend/exports.js b/src/backend/exports.js index 9ea422cc5..4bc024dd9 100644 --- a/src/backend/exports.js +++ b/src/backend/exports.js @@ -32,6 +32,7 @@ const { Core2Module } = require("./src/modules/core/Core2Module.js"); const { TemplateModule } = require("./src/modules/template/TemplateModule.js"); const { PuterFSModule } = require("./src/modules/puterfs/PuterFSModule.js"); const { PerfMonModule } = require("./src/modules/perfmon/PerfMonModule.js"); +const { AppsModule } = require("./src/modules/apps/AppsModule.js"); module.exports = { @@ -53,6 +54,7 @@ module.exports = { CoreModule, WebModule, TemplateModule, + AppsModule, ], // Pre-built modules diff --git a/src/backend/src/CoreModule.js b/src/backend/src/CoreModule.js index d921bca02..b4f6d2757 100644 --- a/src/backend/src/CoreModule.js +++ b/src/backend/src/CoreModule.js @@ -373,7 +373,6 @@ const install_legacy = async ({ services }) => { const { OperationTraceService } = require('./services/OperationTraceService'); const { ClientOperationService } = require('./services/ClientOperationService'); const { EngPortalService } = require('./services/EngPortalService'); - const { AppInformationService } = require('./services/AppInformationService'); const { FileCacheService } = require('./services/file-cache/FileCacheService'); // === Services which do not yet extend BaseService === @@ -381,7 +380,6 @@ const install_legacy = async ({ services }) => { services.registerService('operationTrace', OperationTraceService); services.registerService('file-cache', FileCacheService); services.registerService('client-operation', ClientOperationService); - services.registerService('app-information', AppInformationService); services.registerService('engineering-portal', EngPortalService); }; diff --git a/src/backend/src/services/AppInformationService.js b/src/backend/src/modules/apps/AppInformationService.js similarity index 99% rename from src/backend/src/services/AppInformationService.js rename to src/backend/src/modules/apps/AppInformationService.js index 511bd8d14..d79af231a 100644 --- a/src/backend/src/services/AppInformationService.js +++ b/src/backend/src/modules/apps/AppInformationService.js @@ -19,10 +19,9 @@ */ const { asyncSafeSetInterval } = require('@heyputer/putility').libs.promise; const { MINUTE, SECOND } = require("@heyputer/putility").libs.time; -const { origin_from_url } = require("../util/urlutil"); -const { DB_READ } = require("./database/consts"); - -const uuidv4 = require('uuid').v4; +const { origin_from_url } = require("../../util/urlutil"); +const { DB_READ } = require("../../services/database/consts"); +const BaseService = require('../../services/BaseService'); /** @@ -35,15 +34,15 @@ const uuidv4 = require('uuid').v4; * up-to-date information about applications, facilitating features like app listings, * recent apps, and tag-based app discovery. */ -class AppInformationService { - constructor ({ services }) { - this.services = services; - this.log = services.get('log-service').create('app-info'); - +class AppInformationService extends BaseService { + _construct () { this.collections = {}; this.collections.recent = []; this.tags = {}; + } + + ['on_boot.consolidation'] () { // MySQL date format mapping for different groupings this.mysqlDateFormats = { diff --git a/src/backend/src/modules/apps/AppsModule.js b/src/backend/src/modules/apps/AppsModule.js new file mode 100644 index 000000000..5fd1dac19 --- /dev/null +++ b/src/backend/src/modules/apps/AppsModule.js @@ -0,0 +1,14 @@ +const { AdvancedBase } = require("@heyputer/putility"); + +class AppsModule extends AdvancedBase { + async install (context) { + const services = context.get('services'); + + const { AppInformationService } = require('./AppInformationService'); + services.registerService('app-information', AppInformationService); + } +} + +module.exports = { + AppsModule +};