[MediaWiki-commits] [Gerrit] mediawiki...mobileapps[master]: Remove aggregated endpoint
jenkins-bot has submitted this change and it was merged. Change subject: Remove aggregated endpoint .. Remove aggregated endpoint RESTBase now handles aggregation, so maintaining this as part of MCS is no longer necessary or desirable. Adds tests to ensure the correct behavior of the aggregated query flag for relevant individual endpoints. Bug: T145221 Change-Id: I453a1f729492a6550661df7bd0e050f04e81f8c0 --- M lib/mobile-util.js D routes/aggregated.js M spec.yaml D test/features/aggregated/aggregated.js M test/features/definition/definition.js M test/features/featured-image/pagecontent.js M test/features/most-read/most-read.js M test/features/news/news.js 8 files changed, 37 insertions(+), 218 deletions(-) Approvals: BearND: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/mobile-util.js b/lib/mobile-util.js index d32108e..84e2e2f 100644 --- a/lib/mobile-util.js +++ b/lib/mobile-util.js @@ -10,7 +10,6 @@ mobileSections: { name: 'mobile-sections', version: '0.8.0' }, definition: { name: 'definition', version: '0.7.0' }, -aggregatedFeed: { name: 'aggregated-feed', version: '0.5.0' }, random: { name: 'random', version: '0.6.0' }, unpublished: { name: 'unpublished', version: '0.0.0' } diff --git a/routes/aggregated.js b/routes/aggregated.js deleted file mode 100644 index 35afaee..000 --- a/routes/aggregated.js +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Route for fetching aggregated app feed content. - */ - -'use strict'; - -var BBPromise = require('bluebird'); -var preq = require('preq'); -var sUtil = require('../lib/util'); -var mUtil = require('../lib/mobile-util'); -var mwapi = require('../lib/mwapi'); -var dateUtil = require('../lib/dateUtil'); -var mostRead = require('../lib/feed/most-read'); -var featured = require('../lib/feed/featured'); -var featuredImage = require('../lib/feed/featured-image'); -var random = require('../lib/feed/random'); -var news = require('../lib/feed/news'); - -/** - * The main router object - */ -var router = sUtil.router(); - -/** - * The main application object reported when this module is require()d - */ -var app; - -/** - * GET {domain}/api/rest_v1/feed/featured/{}/{mm}/{dd} - * Returns aggregated feed content for the date requested. - */ -router.get('/featured/:/:mm/:dd', function (req, res) { -var dateString = dateUtil.dateStringFrom(req); -// signal that this is a request for aggregated resources -req.query = req.query || {}; -req.query.aggregated = true; -return BBPromise.props({ -tfa: featured.promise(app, req), -mostread: mostRead.promise(app, req), -random: random.promise(app, req), -news: news.promise(app, req), -image: featuredImage.promise(app, req) -}) .then(function (response) { -var aggregate = { -tfa: response.tfa.payload, -random: mwapi.buildTitleResponse(response.random.payload), -mostread: response.mostread.payload, -news: response.news.payload, -image: response.image.payload -}; -res.status(200); -mUtil.setETagToValue(res, mUtil.getDateStringEtag(dateString)); -mUtil.setContentType(res, mUtil.CONTENT_TYPES.aggregatedFeed); -res.json(aggregate).end(); -}); -}); - -module.exports = function (appObj) { -app = appObj; -return { -path: '/feed', -api_version: 1, -router: router -}; -}; diff --git a/spec.yaml b/spec.yaml index 5529d9c..3733239 100644 --- a/spec.yaml +++ b/spec.yaml @@ -55,83 +55,6 @@ description: /.+/ version: /.+/ home: /.+/ - # from routes/aggregated.js - /{domain}/v1/feed/featured/{}/{mm}/{dd}: -get: - tags: -- Aggregated feed content for a given date - description: Provides aggregated feed content (featured article of the day, previous day's most-read articles, news, random article, featured image, featured video) - produces: -- application/json - parameters: -- name: - in: path - description: "Year the aggregated content is requested for" - type: string - required: true - minimum: "2016" - maximum: "2999" -- name: mm - in: path - description: "Month the aggregated content is requested for" - type: string - required: true - minimum: "01" - maximum: "12" -- name: dd - in: path - description: "Day of the month the aggregated content is requested for" - type: string - required: true - minimum: "01" - maximum: "31" - x-monitor: false -# x-amples: -#- title: retrieve aggregated feed content for April 29, 2016 -# request: -#params: -# : "2016" -# mm: "04" -#
[MediaWiki-commits] [Gerrit] mediawiki...mobileapps[master]: Remove aggregated endpoint
Mholloway has uploaded a new change for review. https://gerrit.wikimedia.org/r/310078 Change subject: Remove aggregated endpoint .. Remove aggregated endpoint RESTBase now handles aggregation, so maintaining this as part of MCS is no longer necessary or desirable. Bug: T145221 Change-Id: I453a1f729492a6550661df7bd0e050f04e81f8c0 --- M lib/mobile-util.js D routes/aggregated.js D test/features/aggregated/aggregated.js 3 files changed, 0 insertions(+), 139 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/mobileapps refs/changes/78/310078/1 diff --git a/lib/mobile-util.js b/lib/mobile-util.js index d32108e..84e2e2f 100644 --- a/lib/mobile-util.js +++ b/lib/mobile-util.js @@ -10,7 +10,6 @@ mobileSections: { name: 'mobile-sections', version: '0.8.0' }, definition: { name: 'definition', version: '0.7.0' }, -aggregatedFeed: { name: 'aggregated-feed', version: '0.5.0' }, random: { name: 'random', version: '0.6.0' }, unpublished: { name: 'unpublished', version: '0.0.0' } diff --git a/routes/aggregated.js b/routes/aggregated.js deleted file mode 100644 index 35afaee..000 --- a/routes/aggregated.js +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Route for fetching aggregated app feed content. - */ - -'use strict'; - -var BBPromise = require('bluebird'); -var preq = require('preq'); -var sUtil = require('../lib/util'); -var mUtil = require('../lib/mobile-util'); -var mwapi = require('../lib/mwapi'); -var dateUtil = require('../lib/dateUtil'); -var mostRead = require('../lib/feed/most-read'); -var featured = require('../lib/feed/featured'); -var featuredImage = require('../lib/feed/featured-image'); -var random = require('../lib/feed/random'); -var news = require('../lib/feed/news'); - -/** - * The main router object - */ -var router = sUtil.router(); - -/** - * The main application object reported when this module is require()d - */ -var app; - -/** - * GET {domain}/api/rest_v1/feed/featured/{}/{mm}/{dd} - * Returns aggregated feed content for the date requested. - */ -router.get('/featured/:/:mm/:dd', function (req, res) { -var dateString = dateUtil.dateStringFrom(req); -// signal that this is a request for aggregated resources -req.query = req.query || {}; -req.query.aggregated = true; -return BBPromise.props({ -tfa: featured.promise(app, req), -mostread: mostRead.promise(app, req), -random: random.promise(app, req), -news: news.promise(app, req), -image: featuredImage.promise(app, req) -}) .then(function (response) { -var aggregate = { -tfa: response.tfa.payload, -random: mwapi.buildTitleResponse(response.random.payload), -mostread: response.mostread.payload, -news: response.news.payload, -image: response.image.payload -}; -res.status(200); -mUtil.setETagToValue(res, mUtil.getDateStringEtag(dateString)); -mUtil.setContentType(res, mUtil.CONTENT_TYPES.aggregatedFeed); -res.json(aggregate).end(); -}); -}); - -module.exports = function (appObj) { -app = appObj; -return { -path: '/feed', -api_version: 1, -router: router -}; -}; diff --git a/test/features/aggregated/aggregated.js b/test/features/aggregated/aggregated.js deleted file mode 100644 index dec2950..000 --- a/test/features/aggregated/aggregated.js +++ /dev/null @@ -1,72 +0,0 @@ -'use strict'; - - -var preq = require('preq'); -var assert = require('../../utils/assert'); -var server = require('../../utils/server'); -var headers = require('../../utils/headers'); -var dateUtil = require('../../../lib/dateUtil'); - -var date = new Date(); -var dateString = date.getUTCFullYear() + '/' + dateUtil.pad(date.getUTCMonth() + 1) + '/' + dateUtil.pad(date.getUTCDate()); - -var yesterday = new Date(Date.now() - dateUtil.ONE_DAY); -var yesterdayString = yesterday.getUTCFullYear() + '-' -+ dateUtil.pad(yesterday.getUTCMonth() + 1) + '-' -+ dateUtil.pad(yesterday.getUTCDate()) -+ 'Z'; - -describe('aggregated feed endpoint', function() { -this.timeout(2); - -before(function () { return server.start(); }); - -it('should respond to GET request with expected headers, incl. CORS and CSP headers', function() { -return headers.checkHeaders(server.config.uri + 'en.wikipedia.org/v1/feed/featured/' + dateString); -}); - -it('Response should contain all expected properties', function() { -return preq.get({ uri: server.config.uri + 'en.wikipedia.org/v1/feed/featured/' + dateString }) -.then(function(res) { -var body = res.body; -assert.deepEqual(res.status, 200); -assert.ok(body.hasOwnProperty('tfa'), 'Should have today\'s featured article'); -if (body.hasOwnPro