Browse Source

Simplify PuterVersionService

KernelDeimos 1 year ago
parent
commit
fc5025a2a8

+ 1 - 1
package-lock.json

@@ -10789,7 +10789,7 @@
     },
     "packages/backend": {
       "name": "@heyputer/backend",
-      "version": "1.0.0",
+      "version": "2.0.2",
       "license": "AGPL-3.0-only",
       "workspaces": [
         "packages/*"

+ 7 - 2
packages/backend/src/CoreModule.js

@@ -43,6 +43,11 @@ module.exports = CoreModule;
 const install = async ({ services, app }) => {
     const config = require('./config');
 
+    // /!\ IMPORTANT /!\
+    // For new services, put the import immediate above the
+    // call to services.registerService. We'll clean this up
+    // in a future PR.
+
     const { LogService } = require('./services/runtime-analysis/LogService');
     const { PagerService } = require('./services/runtime-analysis/PagerService');
     const { AlarmService } = require('./services/runtime-analysis/AlarmService');
@@ -182,6 +187,8 @@ const install = async ({ services, app }) => {
     const { EventService } = require('./services/EventService');
     services.registerService('event', EventService);
 
+    const { PuterVersionService } = require('./services/PuterVersionService');
+    services.registerService('puter-version', PuterVersionService);
 }
 
 const install_legacy = async ({ services }) => {
@@ -192,7 +199,6 @@ const install_legacy = async ({ services }) => {
     const PerformanceMonitor = require('./monitor/PerformanceMonitor');
     const { OperationTraceService } = require('./services/OperationTraceService');
     const { WSPushService } = require('./services/WSPushService');
-    const { PuterVersionService } = require('./services/PuterVersionService');
     const { ReferralCodeService } = require('./services/ReferralCodeService');
     const { Emailservice } = require('./services/EmailService');
     const { ClientOperationService } = require('./services/ClientOperationService');
@@ -207,7 +213,6 @@ const install_legacy = async ({ services }) => {
     services.registerService('filesystem', FilesystemService);
     services.registerService('operationTrace', OperationTraceService);
     services.registerService('__event-push-ws', WSPushService);
-    services.registerService('puter-version', PuterVersionService);
     services.registerService('referral-code', ReferralCodeService);
     services.registerService('email', Emailservice);
     services.registerService('file-cache', FileCacheService);

+ 0 - 1
packages/backend/src/services/PuterAPIService.js

@@ -22,7 +22,6 @@ class PuterAPIService extends BaseService {
     async ['__on_install.routes'] () {
         const { app } = this.services.get('web-server');
 
-        app.use(require('../routers/version'))
         app.use(require('../routers/apps'))
         app.use(require('../routers/query/app'))
         app.use(require('../routers/change_username'))

+ 10 - 50
packages/backend/src/services/PuterVersionService.js

@@ -16,66 +16,26 @@
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
-const { AdvancedBase } = require("puter-js-common");
-const { NodeUIDSelector } = require("../filesystem/node/selectors");
-const { get_user } = require("../helpers");
-const { TeePromise } = require("../util/promise");
-const { StreamBuffer } = require("../util/streamutil");
+const BaseService = require("./BaseService");
 
-class PuterVersionService extends AdvancedBase {
-    static MODULES = {
-        _path: require('path'),
-        fs: require('fs'),
-        _exec: require('child_process').execSync,
-        axios: require('axios'),
+class PuterVersionService extends BaseService {
+    async _init () {
+        this.boot_time = Date.now();
     }
 
-    constructor ({ services, config }) {
-        super();
-        this.fs = services.get('filesystem');
-        this.config = config;
-
-        this._init({ config });
-        this.ready_ = new TeePromise();
-    }
-
-    async _init ({ config }) {
-        // this.node = await this.fs.node(new NodeUIDSelector(config.puter_hosted_data.puter_versions));
-        // this.user = await get_user({ username: 'puter' });
-
-        // await this._poll_versions({ config });
-
-        // setInterval(async () => {
-        //     await this._poll_versions({ config });
-        // }, 60 * 1000);
-    }
-
-    // not used anymore - this was for getting version numbers from a file hosted on puter
-    async _poll_versions ({ config }) {
-        const resp = await this.modules.axios.get(
-            config.puter_hosted_data.puter_versions
-        );
-        this.versions_ = resp.data.versions;
-        this.ready_.resolve();
+    async ['__on_install.routes'] () {
+        const { app } = this.services.get('web-server');
+        app.use(require('../routers/version'));
     }
 
     get_version () {
-        let deploy_timestamp;
-        if ( this.config.env === 'dev' ) {
-            deploy_timestamp = Date.now();
-        } else {
-            deploy_timestamp = Number.parseInt((this.modules.fs.readFileSync(
-                this.modules._path.join(__dirname, '../../deploy_timestamp'),
-                'utf8'
-            )).trim());
-        }
         const version = process.env.npm_package_version ||
             require('../../package.json').version;
         return {
             version,
-            environment: this.config.env,
-            location: this.config.server_id,
-            deploy_timestamp,
+            environment: this.global_config.env,
+            location: this.global_config.server_id,
+            deploy_timestamp: this.boot_time,
         };
     }
 }