From ca78d4992be5d9528f5ab57e263248f097e4a6d3 Mon Sep 17 00:00:00 2001 From: Vitalii Kiiko Date: Fri, 29 Nov 2024 15:50:53 +0100 Subject: [PATCH 1/3] - added error logging; --- package.json | 1 + .../DraftApplicationsTable/index.js | 4 - src/service/network-service.js | 73 +++++++++++++++---- 3 files changed, 58 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index eb4ec21..e15d21d 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "@emailjs/browser": "^4.4.1", "@emotion/styled": "11.13.0", "@number-flow/react": "0.2.0", + "@sentry/browser": "^8.41.0", "@tanstack/react-table": "^8.20.5", "@wordpress/i18n": "5.8.0", "@wordpress/react-i18n": "4.8.0", diff --git a/src/pages/Dashboard/components/DraftApplicationsTable/index.js b/src/pages/Dashboard/components/DraftApplicationsTable/index.js index 64cc39e..acaec4b 100644 --- a/src/pages/Dashboard/components/DraftApplicationsTable/index.js +++ b/src/pages/Dashboard/components/DraftApplicationsTable/index.js @@ -16,13 +16,9 @@ import ApplicationService from '../../../../service/application-service'; import { FilterMatchMode, FilterOperator } from 'primereact/api'; import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; -import { InputText } from 'primereact/inputtext'; -import { IconField } from 'primereact/iconfield'; -import { InputIcon } from 'primereact/inputicon'; import { Dropdown } from 'primereact/dropdown'; import { ProgressBar } from 'primereact/progressbar'; import { Button } from 'primereact/button'; -//import { Calendar } from 'primereact/calendar'; import { Tag } from 'primereact/tag'; import ProperBandoLabel from '../../../../components/ProperBandoLabel'; import { Link } from 'react-router-dom'; diff --git a/src/service/network-service.js b/src/service/network-service.js index 98464cb..c2c9b22 100644 --- a/src/service/network-service.js +++ b/src/service/network-service.js @@ -1,9 +1,33 @@ import { storeGet } from '../store'; +import * as Sentry from "@sentry/browser"; + export class NetworkService { static TOKEN_KEY static REFRESH_TOKEN_KEY + static logApiError = (endpoint, status = 0, resp) => { + try { + if ([500].includes(status)) { + Sentry.init({ + dsn: "https://e7b2134f7d816f663bb83e51b106a694@o4508381921738752.ingest.de.sentry.io/4508381935501392", + environment: process.env.NODE_ENV || "development" + }); + + const error = new Error(`Status ${status}`); + Sentry.captureException(`Error in endpoint: ${endpoint}`, { + level: 'error', + extra: { + originalError: error, + details: resp + } + }); + } + } catch (err) { + console.log(err); + } + } + static postEmptyResponse = (url, body, callback, errorCallback) => { fetch(url, { method: 'POST', @@ -77,10 +101,12 @@ export class NetworkService { return { response: await response.json(), status: status } }) .then(data => { - if (data.status >= 400 && data.status <= 599) + if (data.status >= 400 && data.status <= 599) { errorCallback(data.response) - else + this.logApiError(url, data.status, data.response); + } else { callback(data.response) + } }) .catch(err => errorCallback(err)); }; @@ -118,10 +144,12 @@ export class NetworkService { return { response: await response.json(), status: status } }) .then(data => { - if (data.status >= 400 && data.status <= 599) + if (data.status >= 400 && data.status <= 599) { errorCallback(data.response) - else + this.logApiError(url, data.status, data.response); + } else { callback(data.response) + } }) .catch(err => errorCallback(err)); }; @@ -159,10 +187,12 @@ export class NetworkService { return { response: await response.blob(), status: status } }) .then(data => { - if (data.status >= 400 && data.status <= 599) + if (data.status >= 400 && data.status <= 599) { errorCallback(data.response) - else + this.logApiError(url, data.status, data.response); + } else { callback(data.response) + } }) .catch(err => errorCallback(err)); }; @@ -198,10 +228,12 @@ export class NetworkService { return { response: await response.json(), status: status } }) .then(data => { - if (data.status >= 400 && data.status <= 599) + if (data.status >= 400 && data.status <= 599) { errorCallback(data.response) - else + this.logApiError(url, data.status, data.response); + } else { callback(data.response) + } }) .catch(err => errorCallback(err)); }; @@ -261,10 +293,12 @@ export class NetworkService { return { response: await response.json(), status: status } }) .then(data => { - if (data.status >= 400 && data.status <= 599) + if (data.status >= 400 && data.status <= 599) { errorCallback(data.response) - else + this.logApiError(url, data.status, data.response); + } else { callback(data.response) + } }) .catch(err => errorCallback(err)); }; @@ -381,12 +415,15 @@ export class NetworkService { }) .then(data => { if (data.status >= 400 && data.status <= 599) { - errorCallback(data.response) + errorCallback(data.response); + this.logApiError(url, data.status, data.response); } else { callback(data.response) } }) - .catch(err => errorCallback(err)); + .catch(err => { + errorCallback(err) + }); }; @@ -422,10 +459,12 @@ export class NetworkService { return { response: await response.blob(), status: status } }) .then(data => { - if (data.status >= 400 && data.status <= 599) + if (data.status >= 400 && data.status <= 599) { errorCallback(data.response) - else + this.logApiError(url, data.status, data.response); + } else { callback(data.response) + } }) .catch(err => errorCallback(err)); }; @@ -504,10 +543,12 @@ export class NetworkService { return { response: await response.json(), status: status } }) .then(data => { - if (data.status >= 400 && data.status <= 599) + if (data.status >= 400 && data.status <= 599) { errorCallback(data.response) - else + this.logApiError(url, data.status, data.response); + } else { callback(data.response) + } }) .catch(err => errorCallback(err)); From 893b49a66bab0b304e13d084ccf7f0143caa8eb5 Mon Sep 17 00:00:00 2001 From: Vitalii Kiiko Date: Mon, 2 Dec 2024 12:33:01 +0100 Subject: [PATCH 2/3] - updated source code for amendment fileupload; --- src/pages/DomandaBeneficiario/index.js | 1 + src/pages/SoccorsoEditPreInstructor/index.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/pages/DomandaBeneficiario/index.js b/src/pages/DomandaBeneficiario/index.js index 3ba58ae..2aee3a5 100644 --- a/src/pages/DomandaBeneficiario/index.js +++ b/src/pages/DomandaBeneficiario/index.js @@ -289,6 +289,7 @@ const DomandaBeneficiario = () => { errors={errors} defaultValue={formInitialData[o.fieldId] ? formInitialData[o.fieldId] : []} accept={[]} + source="AMENDMENT" sourceId={data.applicationId} multiple={true} /> diff --git a/src/pages/SoccorsoEditPreInstructor/index.js b/src/pages/SoccorsoEditPreInstructor/index.js index 41420c5..7ca9299 100644 --- a/src/pages/SoccorsoEditPreInstructor/index.js +++ b/src/pages/SoccorsoEditPreInstructor/index.js @@ -407,6 +407,7 @@ const SoccorsoEditPreInstructor = () => { errors={errors} defaultValue={formInitialData[o.fieldId] ? formInitialData[o.fieldId] : []} accept={[]} + source="AMENDMENT" sourceId={data.applicationId} multiple={true} /> From 4081b8b3751351152249bd331461712929ac7ba9 Mon Sep 17 00:00:00 2001 From: Vitalii Kiiko Date: Thu, 5 Dec 2024 09:39:29 +0100 Subject: [PATCH 3/3] - updated hotkeys; --- src/pages/Login/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Login/index.js b/src/pages/Login/index.js index 3b7a6d8..eacfec4 100644 --- a/src/pages/Login/index.js +++ b/src/pages/Login/index.js @@ -116,7 +116,7 @@ const Login = () => { /*if ('t7jh5wfg9QXylNaTZkPoE' === APP_HUB_ID) { setIsMaintenance(true); }*/ - hotkeys('command+x', function(event, handler){ + hotkeys('command+x,ctrl+x', function(event, handler){ window.location.replace('/loginadmin') }); }, []);