Skip to content
Commits on Source (2)
......@@ -8,6 +8,8 @@ import abortableFetch from '../helpers/abortableFetch';
import { Version } from '../../config/Version';
import logService from './log.service';
import * as Sentry from '@sentry/react-native';
/**
* Api Error
*/
......@@ -29,6 +31,16 @@ export const isApiForbidden = function(err) {
* Api service
*/
class ApiService {
async parseJSON(response) {
try {
return await response.json();
} catch (error) {
Sentry.captureMessage(`ISSUE #1572 URL: ${response.url}, STATUS: ${response.status} STATUSTEXT: ${response.statusText}`);
throw error;
}
}
/**
* Clear cookies
*/
......@@ -113,7 +125,7 @@ class ApiService {
}
// Convert from JSON
const data = await response.json();
const data = await this.parseJSON(response);
// Failed on API side
if (data.status != 'success') {
......@@ -144,7 +156,7 @@ class ApiService {
}
// Convert from JSON
const data = await response.json();
const data = await this.parseJSON(response);
// Failed on API side
if (data.status != 'success') {
......@@ -175,7 +187,7 @@ class ApiService {
}
// Convert from JSON
const data = await response.json();
const data = await this.parseJSON(response);
// Failed on API side
if (data.status === 'error') {
......@@ -251,7 +263,7 @@ class ApiService {
}
// Convert from JSON
const data = await response.json();
const data = await this.parseJSON(response);
// Failed on API side
if (data.status === 'error') {
......