root html is no longer invariant, serve it normally
authorJustin Wind <justin.wind+git@gmail.com>
Sun, 2 Jan 2022 22:15:56 +0000 (14:15 -0800)
committerJustin Wind <justin.wind+git@gmail.com>
Sun, 2 Jan 2022 22:15:56 +0000 (14:15 -0800)
src/manager.js
src/service.js
test/src/manager.js

index 65444a064c33e202afa195208236cab0527f3bab..b5eff7a3ecb88698beeb9d4bcc9364f4ccedacb7 100644 (file)
@@ -25,13 +25,6 @@ class Manager {
     this.db = db;
     this.options = options;
     this.communication = new Communication(logger, db, options);
-
-    // Precalculate the invariant root GET metadata.
-    this.getRootContent = Template.rootHTML(undefined, options);
-    const now = new Date();
-    this.startTimeString = now.toGMTString();
-    this.startTimeMs = now.getTime();
-    this.getRootETag = common.generateETag(undefined, undefined, this.getRootContent);
   }
 
 
@@ -61,16 +54,8 @@ class Manager {
     const _scope = _fileScope('getRoot');
     this.logger.debug(_scope, 'called', { ctx });
 
-    res.setHeader(Enum.Header.LastModified, this.startTimeString);
-    res.setHeader(Enum.Header.ETag, this.getRootETag);
-
-    if (common.isClientCached(req, this.startTimeMs, this.getRootETag)) {
-      this.logger.debug(_scope, 'client cached response', { ctx });
-      res.statusCode = 304;
-      res.end();
-      return;
-    }
-    res.end(this.getRootContent);
+    const content = Template.rootHTML(ctx, this.options);
+    res.end(content);
     this.logger.info(_scope, 'finished', { ctx });
   }
 
index 6dcde1ec201b1a212beb704d99c61edebcd75be9..d493f8affdf83f3585973ad380c3f9a5ab8caa48 100644 (file)
@@ -101,6 +101,8 @@ class Service extends Dingus {
 
     this.setResponseType(responseTypes, req, res, ctx);
 
+    await this.authenticator.sessionOptional(req, res, ctx, this.loginPath);
+
     await this.manager.getRoot(req, res, ctx);
   }
 
index 7db6b84e8ef49021bc6deedc9b0c271162d2a620..67283d76b82c992058e39b2926bd699cd1d43830 100644 (file)
@@ -59,18 +59,6 @@ describe('Manager', function () {
       await manager.getRoot(req, res, ctx);
       assert(res.end.called);
     });
-    it('repeat response', async function () {
-      manager.startTime = (new Date()).toGMTString();
-      common.isClientCached.returns(true);
-      await manager.getRoot(req, res, ctx);
-      assert(res.end.called);
-    });
-    it('cached response', async function () {
-      common.isClientCached.returns(true);
-      await manager.getRoot(req, res, ctx);
-      assert(res.end.called);
-      assert.strictEqual(res.statusCode, 304);      
-    });
   }); // getRoot
 
   describe('getHealthcheck', function () {