[MediaWiki-commits] [Gerrit] mediawiki...mobileapps[master]: Remove aggregated endpoint

2016-09-21 Thread jenkins-bot (Code Review)
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

2016-09-12 Thread Mholloway (Code Review)
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