www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 862b371b49142f284b20d119272904fc1a660580
parent 14ce4554835ae84d0e54327d1bcc165df9d71f24
Author: Dan Stillman <dstillman@zotero.org>
Date:   Mon,  2 May 2016 01:28:37 -0400

Refactor some API response handling code

Diffstat:
Mchrome/content/zotero/xpcom/sync/syncAPIClient.js | 80++++++++++++++++++++++++++++---------------------------------------------------
1 file changed, 28 insertions(+), 52 deletions(-)

diff --git a/chrome/content/zotero/xpcom/sync/syncAPIClient.js b/chrome/content/zotero/xpcom/sync/syncAPIClient.js @@ -113,12 +113,8 @@ Zotero.Sync.APIClient.prototype = { if (xmlhttp.status == 304) { return false; } - var libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); - if (!libraryVersion) { - throw new Error("Last-Modified-Version not provided"); - } return { - libraryVersion: libraryVersion, + libraryVersion: this._getLastModifiedVersion(xmlhttp), settings: this._parseJSON(xmlhttp.responseText) }; }), @@ -141,12 +137,8 @@ Zotero.Sync.APIClient.prototype = { Zotero.debug(`'since' value '${since}' is earlier than the beginning of the delete log`); return false; } - var libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); - if (!libraryVersion) { - throw new Error("Last-Modified-Version not provided"); - } return { - libraryVersion: libraryVersion, + libraryVersion: this._getLastModifiedVersion(xmlhttp), deleted: this._parseJSON(xmlhttp.responseText) }; }), @@ -308,16 +300,8 @@ Zotero.Sync.APIClient.prototype = { body: json, successCodes: [204, 412] }); - // Avoid logging error from Zotero.HTTP.request() in ConcurrentCaller - if (xmlhttp.status == 412) { - Zotero.debug("Server returned 412: " + xmlhttp.responseText, 2); - throw new Zotero.HTTP.UnexpectedStatusException(xmlhttp); - } - libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); - if (!libraryVersion) { - throw new Error("Last-Modified-Version not provided"); - } - return libraryVersion; + this._check412(xmlhttp); + return this._getLastModifiedVersion(xmlhttp); }), @@ -349,17 +333,9 @@ Zotero.Sync.APIClient.prototype = { body: json, successCodes: [200, 412] }); - // Avoid logging error from Zotero.HTTP.request() in ConcurrentCaller - if (xmlhttp.status == 412) { - Zotero.debug("Server returned 412: " + xmlhttp.responseText, 2); - throw new Zotero.HTTP.UnexpectedStatusException(xmlhttp); - } - libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); - if (!libraryVersion) { - throw new Error("Last-Modified-Version not provided"); - } + this._check412(xmlhttp); return { - libraryVersion, + libraryVersion: this._getLastModifiedVersion(xmlhttp), results: this._parseJSON(xmlhttp.responseText) }; }), @@ -385,23 +361,14 @@ Zotero.Sync.APIClient.prototype = { params[objectType + "Key"] = keys.join(","); } var uri = this.buildRequestURI(params); - var xmlhttp = yield this.makeRequest("DELETE", uri, { headers: { "If-Unmodified-Since-Version": libraryVersion }, successCodes: [204, 412] }); - // Avoid logging error from Zotero.HTTP.request() in ConcurrentCaller - if (xmlhttp.status == 412) { - Zotero.debug("Server returned 412: " + xmlhttp.responseText, 2); - throw new Zotero.HTTP.UnexpectedStatusException(xmlhttp); - } - libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); - if (!libraryVersion) { - throw new Error("Last-Modified-Version not provided"); - } - return libraryVersion; + this._check412(xmlhttp); + return this._getLastModifiedVersion(xmlhttp); }), @@ -419,12 +386,8 @@ Zotero.Sync.APIClient.prototype = { var uri = this.buildRequestURI(params); var xmlhttp = yield this.makeRequest("GET", uri); - var libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); - if (!libraryVersion) { - throw new Error("Last-Modified-Version not provided"); - } return { - libraryVersion: libraryVersion, + libraryVersion: this._getLastModifiedVersion(xmlhttp), versions: this._parseJSON(xmlhttp.responseText) }; }), @@ -446,7 +409,7 @@ Zotero.Sync.APIClient.prototype = { throw new Error("Last-Modified-Version not provided"); } return { - version, + version: this._getLastModifiedVersion(xmlhttp), data: this._parseJSON(xmlhttp.responseText) }; }), @@ -471,11 +434,7 @@ Zotero.Sync.APIClient.prototype = { debug: true } ); - var libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); - if (!libraryVersion) { - throw new Error("Last-Modified-Version not provided"); - } - return libraryVersion; + return this._getLastModifiedVersion(xmlhttp); }), @@ -751,5 +710,22 @@ Zotero.Sync.APIClient.prototype = { this.caller.pause(backoff * 1000); } } + }, + + + _check412: function (xmlhttp) { + // Avoid logging error from Zotero.HTTP.request() in ConcurrentCaller + if (xmlhttp.status == 412) { + Zotero.debug("Server returned 412: " + xmlhttp.responseText, 2); + throw new Zotero.HTTP.UnexpectedStatusException(xmlhttp); + } + }, + + + _getLastModifiedVersion: function (xmlhttp) { + libraryVersion = xmlhttp.getResponseHeader('Last-Modified-Version'); + if (!libraryVersion) { + throw new Error("Last-Modified-Version not provided"); + } } }