database migration 1.0.4, store topic fetch etag/last-modified, provide these when...
[websub-hub] / src / db / base.js
index de0cd44a1b9c5a77eb0e8fcb22771ffbf7c488c1..36cca60328875280620395ae5a4578ebef3136ee 100644 (file)
@@ -173,6 +173,8 @@ class Database {
     this._ensureTypes(data, ['content'], ['string', 'buffer']);
     this._ensureTypes(data, ['contentHash'], ['string']);
     this._ensureTypes(data, ['contentType'], ['string', 'null', 'undefined']);
+    this._ensureTypes(data, ['eTag'], ['string', 'null', 'undefined']);
+    this._ensureTypes(data, ['lastModified'], ['string', 'null', 'undefined']);
   }
 
 
@@ -585,6 +587,18 @@ class Database {
   }
 
 
+  /**
+   * Return an array of the counts of the last #days of topic updates.
+   * @param {*} dbCtx
+   * @param {*} topicId
+   * @param {Number} days
+   * @returns {Number[]}
+   */
+  async topicPublishHistory(dbCtx, topicId, days) {
+    this._notImplemented('topicPublishHistory', arguments);
+  }
+
+
   /**
    * Create or update the basic parameters of a topic.
    * @param {*} dbCtx 
@@ -598,10 +612,12 @@ class Database {
   /**
    * Updates a topic's content data and content update timestamp.
    * @param {Object} data
-   * @param {Integer} data.topicId
+   * @param {*} data.topicId
    * @param {String} data.content
    * @param {String} data.contentHash
    * @param {String=} data.contentType
+   * @param {String=} data.eTag
+   * @param {String=} data.lastModified
    */
   async topicSetContent(dbCtx, data) {
     this._notImplemented('topicSetContent', arguments);