Mobrovac has submitted this change and it was merged.

Change subject: Fix export bug where Zotero fails to export
......................................................................


Fix export bug where Zotero fails to export

Caused internal server errors when Zotero returned
a non-200 response code due to incorrect arg being
passed to reject() and cr.logger being called, which
was undefined.

Bug: T102534
Change-Id: I349fa70abe699def16b08d34d8875bd561168cab
---
M lib/CitoidRequest.js
M lib/CitoidService.js
M lib/Exporter.js
3 files changed, 13 insertions(+), 17 deletions(-)

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



diff --git a/lib/CitoidRequest.js b/lib/CitoidRequest.js
index a7cdbcc..baea288 100644
--- a/lib/CitoidRequest.js
+++ b/lib/CitoidRequest.js
@@ -14,6 +14,7 @@
 function CitoidRequest(req, app) {
 
        this.request = req;
+       this.logger = req.logger || app.logger;
 
        this.response = new CitoidResponse(); // Prepare an empty response
 
diff --git a/lib/CitoidService.js b/lib/CitoidService.js
index 4737385..f6323de 100644
--- a/lib/CitoidService.js
+++ b/lib/CitoidService.js
@@ -38,7 +38,7 @@
 
 /**
  * Requests to the citoid service
- * @param   {Object}   cr       CitoidRequest object
+ * @param   {Object}   cr     CitoidRequest object
  * @returns {Object}          BBPromise for CitoidRequest object
  */
 CitoidService.prototype.request = function(cr) {
@@ -54,8 +54,8 @@
 
 /**
  * Promise for adding correct response function given input type
- * @param  {Object}   cr  CitoidRequest object with new getResponse function 
added as a property
- * @return {Object}       BBPromise object for modified CitoidRequest object 
from input
+ * @param  {Object}   cr     CitoidRequest object with new getResponse 
function added as a property
+ * @return {Object}          BBPromise object for modified CitoidRequest 
object from input
  */
 CitoidService.prototype.addResponseFunction = BBPromise.method(function(cr){
        var search = cr.search;
@@ -127,8 +127,8 @@
 
 /**
  * Promise of requested citation metadata from a URL
- * @param  {Object}   cr  CitoidRequest object with new getResponse function 
added as a property
- * @return {Object}      BBPromise object for modified CitoidRequest object 
from input
+ * @param  {Object}   cr     CitoidRequest object with new getResponse 
function added as a property
+ * @return {Object}          BBPromise object for modified CitoidRequest 
object from input
  */
 CitoidService.prototype.requestFromURL = function(cr) {
 
@@ -152,7 +152,7 @@
                if (response) {
                        self.stats.increment('zotero.req.' + 
Math.floor(response.status / 100) + 'xx');
                        if (response.status === 200){
-                               logger.log('debug/zotero', "Successfully 
retrieved and translated body from Zotero");
+                               logger.log('debug/zotero', "Successfully 
retrieved body from Zotero");
                                cr.setCitation(null, 200, response.body);
                                return cr;
                        } else {
@@ -310,8 +310,8 @@
 
 /**
  * Requests citation metadata from a PMID or PMCID identifier.
- * @param  {Object}   cr         CitoidRequest object with pm(c)id, type and 
format
- * @returns {Object}          BBPromise for CitoidRequest object
+ * @param  {Object}   cr     CitoidRequest object with pm(c)id, type and format
+ * @returns {Object}         BBPromise for CitoidRequest object
  */
 CitoidService.prototype.requestFromPM = function(cr){
 
@@ -377,8 +377,8 @@
 
 /**
  * Scrape and export to Zotero translator if nessecary
- * @param  {Object}   opts      options object containing export format
- * @returns {Object}          BBPromise for CitoidRequest object
+ * @param  {Object}   cr     CitoidRequest object
+ * @return {Object}          BBPromise for CitoidRequest object
  */
 CitoidService.prototype.scrape = function(cr){
 
diff --git a/lib/Exporter.js b/lib/Exporter.js
index ace61fb..1bdccda 100644
--- a/lib/Exporter.js
+++ b/lib/Exporter.js
@@ -100,7 +100,7 @@
        citation = fixAccessDate(citation);
 
        // Run on cr for export failure
-       function reject(cr, response){
+       function reject(cr){
                var format = cr.format;
                var message  = "Unable to serve " + format + " format at this 
time";
                var error = {Error: message};
@@ -113,12 +113,7 @@
 
        return zoteroService.zoteroExportRequest([citation], cr.format).then(
                function(response){
-                       var zotResCode = response.status;
-                       var body = response.body;
-                       if (zotResCode !== 200){
-                               return reject(response);
-                       }
-                       // Don't set response code; could be 520 or 200
+                       // Don't reset response code; could be 520 or 200
                        cr.response.body = response.body.toString();
                        return cr;
                },

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I349fa70abe699def16b08d34d8875bd561168cab
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/services/citoid
Gerrit-Branch: master
Gerrit-Owner: Mvolz <mv...@wikimedia.org>
Gerrit-Reviewer: Mobrovac <mobro...@wikimedia.org>
Gerrit-Reviewer: Mvolz <mv...@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