jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/338288 )
Change subject: On this day: wrap individual endpoint responses in object
......................................................................
On this day: wrap individual endpoint responses in object
By wrapping the array response in an object with the same key as used
in the 'all' response we can later use the same Swagger spec schema for
every type of endpoint. The responses would be also more consistent
between all onthisday endpoints. I just wished we would have done the
same for the other endpoints used to comprise the aggregated feed.
Note: that this schema change would require a corresponding change to
be deployed in RB at the same time.
Change-Id: I69b39501af3604da178e41521efded23302f0634
---
M routes/on-this-day.js
M test/features/onthisday/on-this-day.js
2 files changed, 32 insertions(+), 35 deletions(-)
Approvals:
Ppchelko: Looks good to me, approved
jenkins-bot: Verified
diff --git a/routes/on-this-day.js b/routes/on-this-day.js
index a98f850..691bf03 100644
--- a/routes/on-this-day.js
+++ b/routes/on-this-day.js
@@ -242,69 +242,63 @@
* Gets array of WMFEvent models of births found in a document
* @param {!Document} document Document to examine
* @param {!String} lang String for project language code
- * @return {!Array} Array of WMFEvent models of births
+ * @return {!Object} Object containing list of births
*/
const birthsInDoc = (document, lang) => {
const selector = languages[lang].dayPage.headingIds.births;
- return eventsForYearListElements(
- listElementsByHeadingID(document, selector),
- lang
- );
+ return { births:
eventsForYearListElements(listElementsByHeadingID(document, selector), lang) };
};
/**
* Gets array of WMFEvent models of deaths found in a document
* @param {!Document} document Document to examine
* @param {!String} lang String for project language code
- * @return {!Array} Array of WMFEvent models of deaths
+ * @return {!Object} Object containing list of deaths
*/
const deathsInDoc = (document, lang) => {
const selector = languages[lang].dayPage.headingIds.deaths;
- return eventsForYearListElements(
- listElementsByHeadingID(document, selector),
- lang
- );
+ return { deaths:
+ eventsForYearListElements(listElementsByHeadingID(document, selector),
lang)
+ };
};
/**
* Gets array of WMFEvent models of events found in a document
* @param {!Document} document Document to examine
* @param {!String} lang String for project language code
- * @return {!Array} Array of WMFEvent models of events
+ * @return {!Object} Object containing list of events
*/
const eventsInDoc = (document, lang) => {
const selector = languages[lang].dayPage.headingIds.events;
- return eventsForYearListElements(
- listElementsByHeadingID(document, selector),
- lang
- );
+ return { events:
+ eventsForYearListElements(listElementsByHeadingID(document, selector),
lang)
+ };
};
/**
* Gets array of WMFEvent models of holidays and observances found in a
document
* @param {!Document} document Document to examine
* @param {!String} lang String for project language code
- * @return {!Array} Array of WMFEvent models of holidays and
observances
+ * @return {!Object} Object containing list of holidays and
observances
*/
const holidaysInDoc = (document, lang) => {
const selector = languages[lang].dayPage.headingIds.holidays;
- return holidaysForHolidayListElements(
- listElementsByHeadingID(document, selector)
- );
+ return { holidays:
+ holidaysForHolidayListElements(listElementsByHeadingID(document,
selector))
+ };
};
/**
- * Gets array of WMFEvent models of editor curated selected events found in a
document
+ * Gets array of WMFEvent models of editor curated selected anniversaries
found in a document
* @param {!Document} document Document to examine
* @param {!String} lang String for project language code
- * @return {!Array} Array of WMFEvent models of selections
+ * @return {!Object} Object containing list of selected
anniversaries
*/
const selectionsInDoc = (document, lang) => {
const selector = languages[lang].selectedPage.listElementSelector;
- return eventsForYearListElements(
- document.querySelectorAll(selector),
- lang
- );
+ return { selected:
+ eventsForYearListElements(document.querySelectorAll(selector), lang)
+ };
};
/**
@@ -313,17 +307,19 @@
* @param {!Document} dayDoc Document of events on a given day
* @param {!Document} selectionsDoc Document of editor curated events for a
given day
* @param {!String} lang String for project language code
- * @return {!Dictionary} Dictionary with keys for arrays of
'births', 'deaths',
- * 'events', 'holidays' and 'selected'
+ * @return {!Dictionary} Dictionary with keys for arrays of
'selected', 'events',
+ * 'births', 'deaths', and 'holidays'
*/
const everythingInDayAndSelectionsDocs = (dayDoc, selectionsDoc, lang) => {
- return {
- selected: selectionsInDoc(selectionsDoc, lang),
- births: birthsInDoc(dayDoc, lang),
- deaths: deathsInDoc(dayDoc, lang),
- events: eventsInDoc(dayDoc, lang),
- holidays: holidaysInDoc(dayDoc, lang)
- };
+ const result = {};
+ Object.assign(result,
+ selectionsInDoc(selectionsDoc, lang),
+ eventsInDoc(dayDoc, lang),
+ birthsInDoc(dayDoc, lang),
+ deathsInDoc(dayDoc, lang),
+ holidaysInDoc(dayDoc, lang)
+ );
+ return result;
};
/**
diff --git a/test/features/onthisday/on-this-day.js
b/test/features/onthisday/on-this-day.js
index 371fc22..9892277 100644
--- a/test/features/onthisday/on-this-day.js
+++ b/test/features/onthisday/on-this-day.js
@@ -290,7 +290,8 @@
}
function verifyNonZeroEndpointResults(response, endpointName) {
assert.equal(response.status, 200);
- assert.ok(response.body.length > 0, `${endpointName} should have
fetched some results`);
+ assert.ok(response.body[endpointName].length > 0,
+ `${endpointName} should have fetched some results`);
}
function fetchAndVerifyNonZeroResultsForEndpointName(endpointName, lang) {
return getJanuary30ResponseForEndpointName(endpointName, lang)
--
To view, visit https://gerrit.wikimedia.org/r/338288
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I69b39501af3604da178e41521efded23302f0634
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: BearND <[email protected]>
Gerrit-Reviewer: Ppchelko <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits