diff options
author | Marius David Wieschollek <passwords.public@mdns.eu> | 2023-12-23 22:41:39 +0300 |
---|---|---|
committer | Marius David Wieschollek <passwords.public@mdns.eu> | 2023-12-23 22:41:39 +0300 |
commit | 4f0186c60d9351c58659d69c5f2db103ec9ac3f2 (patch) | |
tree | ac97a5e08238542ace01c7eb594db71cf7154ba2 | |
parent | 33eee91ccb2aa40e0aefb7c4a4045f3fba677bc8 (diff) |
check HTTP status code first
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
-rw-r--r-- | src/Network/ApiRequest.js | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/Network/ApiRequest.js b/src/Network/ApiRequest.js index a4ce535..774189c 100644 --- a/src/Network/ApiRequest.js +++ b/src/Network/ApiRequest.js @@ -128,11 +128,19 @@ export default class ApiRequest { this._updateSessionId(httpResponse); + if(!httpResponse.ok) { + let error = this._getHttpError(httpResponse); + this._api.emit('request.error', error); + throw error; + } + if(this._responseType !== null && contentType && contentType.indexOf(this._responseType) === -1) { let error = this._api.getClass('exception.contenttype', this._responseType, contentType, httpResponse); this._api.emit('request.error', error); throw error; - } else if(contentType && contentType.indexOf('application/json') !== -1) { + } + + if(contentType && contentType.indexOf('application/json') !== -1) { await this._processJsonResponse(httpResponse, response); } else { await this._processBinaryResponse(httpResponse, response); @@ -237,12 +245,6 @@ export default class ApiRequest { * @private */ async _processJsonResponse(httpResponse, response) { - if(!httpResponse.ok) { - let error = this._getHttpError(httpResponse); - this._api.emit('request.error', error); - throw error; - } - try { let json = await httpResponse.json(); response.setData(json); @@ -260,12 +262,6 @@ export default class ApiRequest { * @private */ async _processBinaryResponse(httpResponse, response) { - if(!httpResponse.ok) { - let error = this._getHttpError(httpResponse); - this._api.emit('request.error', error); - throw error; - } - try { let blob = await httpResponse.blob(); response.setData(blob); |