Mobrovac has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/325986 )

Change subject: Emit the $merge key with page summary URI.
......................................................................


Emit the $merge key with page summary URI.

Needed for content hydration in RESTBase.

Change-Id: Idcb99234ead8b322abf84273eb64dab483e808bc
---
M lib/processor.js
M routes/trending-v1.js
M test/features/v1/trending.js
A test/utils/fixtures.js
4 files changed, 70 insertions(+), 7 deletions(-)

Approvals:
  Mobrovac: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/processor.js b/lib/processor.js
index 1d3286c..359fe59 100644
--- a/lib/processor.js
+++ b/lib/processor.js
@@ -110,7 +110,8 @@
                     names: {},
                     main: username
                 },
-                title: edit.page_title
+                title: edit.page_title,
+                domain: edit.meta.domain
             };
         }
         contributors = page.contributors;
diff --git a/routes/trending-v1.js b/routes/trending-v1.js
index 6253ffa..1195b60 100644
--- a/routes/trending-v1.js
+++ b/routes/trending-v1.js
@@ -31,6 +31,17 @@
 
 var ERROR_UNAVAILABLE = 'Trending is currently not available on this wiki.';
 
+function getRbPageSummaryUrl(domain, title) {
+    const request = app.restbase_tpl.expand({
+        request: {
+            params: {
+                domain: domain,
+                path: 'page/summary/' + encodeURIComponent(title) },
+        }
+    });
+    return request.uri;
+}
+
 /**
  * GET /feed/trending-edits
  * Gets the body of a given page.
@@ -50,7 +61,8 @@
                         totalEdits: page.edits,
                         trendiness: page.score,
                         isNew: page.isNew,
-                        updated: page.updated
+                        updated: page.updated,
+                        $merge: [ getRbPageSummaryUrl(page.domain, page.title) 
]
                     };
                 })
         };
diff --git a/test/features/v1/trending.js b/test/features/v1/trending.js
index 79f5ba7..abadc86 100644
--- a/test/features/v1/trending.js
+++ b/test/features/v1/trending.js
@@ -1,10 +1,11 @@
 'use strict';
 
 
-var preq   = require('preq');
-var assert = require('../../utils/assert.js');
-var server = require('../../utils/server.js');
-var processor = require('../../../lib/processor.js');
+const preq = require('preq');
+const assert = require('../../utils/assert.js');
+const server = require('../../utils/server.js');
+const processor = require('../../../lib/processor.js');
+const fixtures = require('../../utils/fixtures');
 
 describe('trending', function() {
 
@@ -16,6 +17,9 @@
     });
 
     it('check response format', function() {
+        for (let i = 0; i < 1000; i++) {
+            processor.process(fixtures.edit);
+        }
         return preq.get({
             uri: server.config.uri + 'en.wikipedia.org/v1/feed/trending-edits/'
         }).then(function(res) {
@@ -27,7 +31,11 @@
             assert.ok(res.body.pages !== undefined, 'Pages property on 
response');
             assert.ok(res.body.timestamp !== undefined,
                 'Timestamp property on response shows how recent results were 
generated');
-            assert.ok(res.body.pages.length === 0, 'Pages property is an 
array.');
+            assert.ok(Array.isArray(res.body.pages), 'Pages property is an 
array.');
+            const page = res.body.pages[0];
+            assert.deepEqual(page.$merge, [
+                
`https://en.wikipedia.org/api/rest_v1/page/summary/${fixtures.edit.page_title}`
+            ]);
         });
     });
 
diff --git a/test/utils/fixtures.js b/test/utils/fixtures.js
new file mode 100644
index 0000000..6eb46ec
--- /dev/null
+++ b/test/utils/fixtures.js
@@ -0,0 +1,42 @@
+'use strict';
+
+const fixtures = {};
+
+fixtures.edit = {
+    "comment": "My cool edit",
+    "database": "enwiki",
+    "meta": {
+        "domain": "en.wikipedia.org",
+        "dt": "2016-12-08T18:48:56+00:00",
+        "id": "f8e3664e-bd76-11e6-bf30-1418776136da",
+        "request_id": "2b656cb8-4af5-40eb-b8ed-b4179035cad4",
+        "schema_uri": "mediawiki/revision/create/1",
+        "topic": "mediawiki.revision-create",
+        "uri": "https://en.wikipedia.org/wiki/Exploding_whale";
+    },
+    "page_id": 12345,
+    "page_is_redirect": false,
+    "page_namespace": 0,
+    "page_title": "Exploding_whale",
+    "performer": {
+        "user_groups": [
+            "bot",
+            "*",
+            "user",
+            "autoconfirmed"
+        ],
+        "user_id": 12345,
+        "user_is_bot": false,
+        "user_text": "User-User"
+    },
+    "rev_content_format": "wikitext",
+    "rev_content_model": "wikitext",
+    "rev_id": 745642299,
+    "rev_len": 10030,
+    "rev_minor_edit": true,
+    "rev_parent_id": 745642299,
+    "rev_sha1": "3ujb8zwx1gzv35k2eif0058gr8842zx",
+    "rev_timestamp": "2016-12-08T18:48:56Z"
+};
+
+module.exports = fixtures;
\ No newline at end of file

-- 
To view, visit https://gerrit.wikimedia.org/r/325986
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Idcb99234ead8b322abf84273eb64dab483e808bc
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/trending-edits
Gerrit-Branch: master
Gerrit-Owner: Ppchelko <ppche...@wikimedia.org>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Mobrovac <mobro...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to