Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.mdns.eu/nextcloud/passwords-client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius David Wieschollek <passwords.public@mdns.eu>2023-12-23 22:41:39 +0300
committerMarius David Wieschollek <passwords.public@mdns.eu>2023-12-23 22:41:39 +0300
commit4f0186c60d9351c58659d69c5f2db103ec9ac3f2 (patch)
treeac97a5e08238542ace01c7eb594db71cf7154ba2
parent33eee91ccb2aa40e0aefb7c4a4045f3fba677bc8 (diff)
check HTTP status code first
Signed-off-by: Marius David Wieschollek <passwords.public@mdns.eu>
-rw-r--r--src/Network/ApiRequest.js22
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);