From 22cfdc59b11e0922c9713f774c0b8a1c852eaa72 Mon Sep 17 00:00:00 2001 From: Arnaud AMBROSELLI Date: Thu, 1 Feb 2024 11:15:15 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20retire=20les=20donn=C3=A9es=20potentiell?= =?UTF-8?q?ement=20sensibles=20de=20sentry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/src/controllers/organisation.js | 1 - api/src/utils/mailservice.js | 2 +- app/src/recoil/actions.js | 2 +- app/src/recoil/comments.js | 2 +- app/src/recoil/consultations.js | 2 +- app/src/recoil/medicalFiles.js | 2 +- app/src/recoil/passages.js | 2 +- app/src/recoil/persons.js | 2 +- app/src/recoil/places.js | 2 +- app/src/recoil/relPersonPlace.js | 2 +- app/src/recoil/rencontres.js | 2 +- app/src/recoil/reports.js | 2 +- app/src/recoil/territory.js | 2 +- app/src/recoil/territoryObservations.js | 2 +- app/src/recoil/treatments.js | 2 +- app/src/scenes/Actions/Action.js | 2 +- dashboard/src/components/CommentsGeneric.js | 69 ++++++++----------- dashboard/src/components/DocumentsGeneric.tsx | 2 +- dashboard/src/recoil/actions.js | 2 +- dashboard/src/recoil/comments.js | 2 +- dashboard/src/recoil/consultations.ts | 2 +- dashboard/src/recoil/medicalFiles.ts | 2 +- dashboard/src/recoil/passages.js | 2 +- dashboard/src/recoil/persons.ts | 2 +- dashboard/src/recoil/places.js | 2 +- dashboard/src/recoil/relPersonPlace.js | 2 +- dashboard/src/recoil/rencontres.js | 2 +- dashboard/src/recoil/reports.js | 2 +- dashboard/src/recoil/territory.js | 2 +- dashboard/src/recoil/territoryObservations.js | 2 +- dashboard/src/recoil/treatments.ts | 2 +- .../person/components/PersonDocuments.tsx | 2 +- .../components/PersonDocumentsMedical.tsx | 16 ++--- dashboard/src/scenes/reception/view.js | 2 +- dashboard/src/scenes/report/view-old.js | 48 ++++++------- dashboard/src/scenes/search/index.js | 7 +- dashboard/src/scenes/stats/Blocks.js | 43 +++++------- dashboard/src/services/api.js | 2 +- 38 files changed, 109 insertions(+), 139 deletions(-) diff --git a/api/src/controllers/organisation.js b/api/src/controllers/organisation.js index 2db2675334..bdcdc9da60 100644 --- a/api/src/controllers/organisation.js +++ b/api/src/controllers/organisation.js @@ -27,7 +27,6 @@ const { const mailservice = require("../utils/mailservice"); const validateUser = require("../middleware/validateUser"); const { looseUuidRegex, customFieldSchema, positiveIntegerRegex } = require("../utils"); -const { capture } = require("../sentry"); const { serializeOrganisation } = require("../utils/data-serializer"); const { defaultSocialCustomFields, defaultMedicalCustomFields } = require("../utils/custom-fields/person"); const { mailBienvenueHtml } = require("../utils/mail-bienvenue"); diff --git a/api/src/utils/mailservice.js b/api/src/utils/mailservice.js index 4cb1d8b814..dcc55dd31b 100644 --- a/api/src/utils/mailservice.js +++ b/api/src/utils/mailservice.js @@ -33,7 +33,7 @@ const sendEmail = async (address, subject, text, html) => { }), }); if (!emailSentResponse.ok) { - capture(new Error("Email not sent"), { extra: { address, subject, text, response: emailSentResponse } }); + capture(new Error("Email not sent"), { extra: { address, subject, response: emailSentResponse } }); } return emailSentResponse; }; diff --git a/app/src/recoil/actions.js b/app/src/recoil/actions.js index c8bd50f14c..a6725d2a02 100644 --- a/app/src/recoil/actions.js +++ b/app/src/recoil/actions.js @@ -76,7 +76,7 @@ export const prepareActionForEncryption = (action) => { "L'action n'a pas été sauvegardée car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { action } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/comments.js b/app/src/recoil/comments.js index f4f2a6d1bd..6a451e713f 100644 --- a/app/src/recoil/comments.js +++ b/app/src/recoil/comments.js @@ -28,7 +28,7 @@ export const prepareCommentForEncryption = (comment) => { "Le commentaire n'a pas été sauvegardé car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { comment } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/consultations.js b/app/src/recoil/consultations.js index 84a77115e8..de55033abc 100644 --- a/app/src/recoil/consultations.js +++ b/app/src/recoil/consultations.js @@ -76,7 +76,7 @@ export const prepareConsultationForEncryption = (customFieldsConsultations) => ( "La consultation n'a pas été sauvegardée car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { consultation } }); + capture(error); throw error; } const consultationTypeCustomFields = customFieldsConsultations.find((consult) => consult.name === consultation.type)?.fields || []; diff --git a/app/src/recoil/medicalFiles.js b/app/src/recoil/medicalFiles.js index 106b1f9d60..b7d5e867e6 100644 --- a/app/src/recoil/medicalFiles.js +++ b/app/src/recoil/medicalFiles.js @@ -30,7 +30,7 @@ export const prepareMedicalFileForEncryption = (customFieldsMedicalFile) => (med "Le dossier médical n'a pas été sauvegardé car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { medicalFile } }); + capture(error); throw error; } const encryptedFieldsIncludingCustom = [...customFieldsMedicalFile.map((f) => f.name), ...encryptedFields]; diff --git a/app/src/recoil/passages.js b/app/src/recoil/passages.js index e114c12545..950988df31 100644 --- a/app/src/recoil/passages.js +++ b/app/src/recoil/passages.js @@ -29,7 +29,7 @@ export const preparePassageForEncryption = (passage) => { "Le passage n'a pas été sauvegardé car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { passage } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/persons.js b/app/src/recoil/persons.js index 9ddf13e53a..9272a3d84a 100644 --- a/app/src/recoil/persons.js +++ b/app/src/recoil/persons.js @@ -116,7 +116,7 @@ export const usePreparePersonForEncryption = () => { "La personne n'a pas été sauvegardée car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { person } }); + capture(error); throw error; } const encryptedFields = personFields.filter((f) => f.encrypted).map((f) => f.name); diff --git a/app/src/recoil/places.js b/app/src/recoil/places.js index a5c2804117..8b9f92cfc9 100644 --- a/app/src/recoil/places.js +++ b/app/src/recoil/places.js @@ -25,7 +25,7 @@ export const preparePlaceForEncryption = (place) => { "Le lieu n'a pas été sauvegardé car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { place } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/relPersonPlace.js b/app/src/recoil/relPersonPlace.js index 7d3849ec58..e836e163b0 100644 --- a/app/src/recoil/relPersonPlace.js +++ b/app/src/recoil/relPersonPlace.js @@ -28,7 +28,7 @@ export const prepareRelPersonPlaceForEncryption = (relPersonPlace) => { "La relation entre le lieu et la personne n'a pas été sauvegardée car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { relPersonPlace } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/rencontres.js b/app/src/recoil/rencontres.js index feeb70e280..ece8d73315 100644 --- a/app/src/recoil/rencontres.js +++ b/app/src/recoil/rencontres.js @@ -31,7 +31,7 @@ export const prepareRencontreForEncryption = (rencontre) => { "La rencontre n'a pas été sauvegardée car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { rencontre } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/reports.js b/app/src/recoil/reports.js index cbd8a53511..d80b85b2ec 100644 --- a/app/src/recoil/reports.js +++ b/app/src/recoil/reports.js @@ -43,7 +43,7 @@ export const prepareReportForEncryption = (report) => { "Le compte-rendu n'a pas été sauvegardé car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { report } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/territory.js b/app/src/recoil/territory.js index 6419f0fcbe..7b04a50043 100644 --- a/app/src/recoil/territory.js +++ b/app/src/recoil/territory.js @@ -25,7 +25,7 @@ export const prepareTerritoryForEncryption = (territory) => { "Le territoire n'a pas été sauvegardé car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { territory } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/recoil/territoryObservations.js b/app/src/recoil/territoryObservations.js index 28467ee645..025ff87585 100644 --- a/app/src/recoil/territoryObservations.js +++ b/app/src/recoil/territoryObservations.js @@ -101,7 +101,7 @@ export const prepareObsForEncryption = (customFields) => (obs) => { "L'observation n'a pas été sauvegardée car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { obs } }); + capture(error); throw error; } const encryptedFields = [...customFields.map((f) => f.name), ...compulsoryEncryptedFields]; diff --git a/app/src/recoil/treatments.js b/app/src/recoil/treatments.js index 8fdadd2890..1fc88b480d 100644 --- a/app/src/recoil/treatments.js +++ b/app/src/recoil/treatments.js @@ -33,7 +33,7 @@ export const prepareTreatmentForEncryption = (treatment) => { "Le traitement n'a pas été sauvegardé car son format était incorrect.", "Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { treatment } }); + capture(error); throw error; } const decrypted = {}; diff --git a/app/src/scenes/Actions/Action.js b/app/src/scenes/Actions/Action.js index de3a0a5566..5c43fe2c01 100644 --- a/app/src/scenes/Actions/Action.js +++ b/app/src/scenes/Actions/Action.js @@ -232,7 +232,7 @@ const Action = ({ navigation, route }) => { if (!!newAction.completedAt) await createReportAtDateIfNotExist(newAction.completedAt); return response; } catch (error) { - capture(error, { extra: { message: 'error in updating action', action } }); + capture(error, { extra: { message: 'error in updating action' } }); return { ok: false, error: error.message }; } }; diff --git a/dashboard/src/components/CommentsGeneric.js b/dashboard/src/components/CommentsGeneric.js index 811bf4900e..65fd7ad1a3 100644 --- a/dashboard/src/components/CommentsGeneric.js +++ b/dashboard/src/components/CommentsGeneric.js @@ -13,7 +13,6 @@ import { FullScreenIcon } from '../assets/icons/FullScreenIcon'; import DatePicker from './DatePicker'; import { outOfBoundariesDate } from '../services/date'; import AutoResizeTextarea from './AutoresizeTextArea'; -import { capture } from '../services/sentry'; import UserName from './UserName'; import CustomFieldDisplay from './CustomFieldDisplay'; @@ -229,14 +228,6 @@ function CommentsTable({ comments, onDisplayComment, onEditComment, onAddComment {(comments || []).map((comment, i) => { if (!comment.type) throw new Error('type is required'); - if (comment.type === 'person' && !comment.person) { - capture(new Error('person is required'), { extra: { comment } }); - return null; - } - if (comment.type === 'action' && !comment.action) { - capture(new Error('action is required'), { extra: { comment } }); - return null; - } return ( { e.stopPropagation(); - try { - const searchParams = new URLSearchParams(location.search); - switch (comment.type) { - case 'action': - searchParams.set('actionId', comment.action); - history.push(`?${searchParams.toString()}`); - break; - case 'person': - history.push(`/person/${comment.person}`); - break; - case 'passage': - history.push(`/person/${comment.person}?passageId=${comment.passage}`); - break; - case 'rencontre': - history.push(`/person/${comment.person}?rencontreId=${comment.rencontre}`); - break; - case 'consultation': - searchParams.set('consultationId', comment.consultation._id); - history.push(`?${searchParams.toString()}`); - break; - case 'treatment': - searchParams.set('treatmentId', comment.treatment._id); - history.push(`?${searchParams.toString()}`); - break; - case 'medical-file': - history.push(`/person/${comment.person}?tab=Dossier+Médical`); - break; - default: - break; - } - } catch (errorLoadingComment) { - capture(errorLoadingComment, { extra: { message: 'error loading comment tag button', comment } }); + const searchParams = new URLSearchParams(location.search); + switch (comment.type) { + case 'action': + searchParams.set('actionId', comment.action); + history.push(`?${searchParams.toString()}`); + break; + case 'person': + history.push(`/person/${comment.person}`); + break; + case 'passage': + history.push(`/person/${comment.person}?passageId=${comment.passage}`); + break; + case 'rencontre': + history.push(`/person/${comment.person}?rencontreId=${comment.rencontre}`); + break; + case 'consultation': + searchParams.set('consultationId', comment.consultation._id); + history.push(`?${searchParams.toString()}`); + break; + case 'treatment': + searchParams.set('treatmentId', comment.treatment._id); + history.push(`?${searchParams.toString()}`); + break; + case 'medical-file': + history.push(`/person/${comment.person}?tab=Dossier+Médical`); + break; + default: + break; } }}>
diff --git a/dashboard/src/components/DocumentsGeneric.tsx b/dashboard/src/components/DocumentsGeneric.tsx index 0aa8862ad2..cab50a6d90 100644 --- a/dashboard/src/components/DocumentsGeneric.tsx +++ b/dashboard/src/components/DocumentsGeneric.tsx @@ -469,7 +469,7 @@ function AddDocumentInput({ personId, onAddDocuments }: AddDocumentInputProps) { file: fileToUpload, }); if (!docResponse.ok || !docResponse.data) { - capture('Error uploading document', { extra: { docResponse } }); + capture('Error uploading document', { extra: { docResponseError: docResponse.error } }); toast.error(`Une erreur est survenue lors de l'envoi du document ${fileToUpload?.filename}`); return; } diff --git a/dashboard/src/recoil/actions.js b/dashboard/src/recoil/actions.js index 168dc2b10d..ea4c82aa51 100644 --- a/dashboard/src/recoil/actions.js +++ b/dashboard/src/recoil/actions.js @@ -83,7 +83,7 @@ export const prepareActionForEncryption = (action, { checkRequiredFields = true toast.error( "L'action n'a pas été sauvegardée car son format était incorrect. Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { action } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/comments.js b/dashboard/src/recoil/comments.js index 79134f466f..d6693dbe0c 100644 --- a/dashboard/src/recoil/comments.js +++ b/dashboard/src/recoil/comments.js @@ -35,7 +35,7 @@ export const prepareCommentForEncryption = (comment, { checkRequiredFields = tru toast.error( "Le commentaire n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { comment } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/consultations.ts b/dashboard/src/recoil/consultations.ts index dc4643cea5..fbc6732fb7 100644 --- a/dashboard/src/recoil/consultations.ts +++ b/dashboard/src/recoil/consultations.ts @@ -82,7 +82,7 @@ export const prepareConsultationForEncryption = toast.error( "La consultation n'a pas été sauvegardée car son format était incorrect. Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { consultation } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/medicalFiles.ts b/dashboard/src/recoil/medicalFiles.ts index 6b29c741bb..eca09f7039 100644 --- a/dashboard/src/recoil/medicalFiles.ts +++ b/dashboard/src/recoil/medicalFiles.ts @@ -35,7 +35,7 @@ export const prepareMedicalFileForEncryption = toast.error( "Le dossier médical n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { medicalFile } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/passages.js b/dashboard/src/recoil/passages.js index c8ccbaea63..b2c88d6c09 100644 --- a/dashboard/src/recoil/passages.js +++ b/dashboard/src/recoil/passages.js @@ -36,7 +36,7 @@ export const preparePassageForEncryption = (passage, { checkRequiredFields = tru toast.error( "Le passage n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { passage } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/persons.ts b/dashboard/src/recoil/persons.ts index cf9e54d82d..0607f1899a 100644 --- a/dashboard/src/recoil/persons.ts +++ b/dashboard/src/recoil/persons.ts @@ -146,7 +146,7 @@ export const usePreparePersonForEncryption = () => { toast.error( "La personne n'a pas été sauvegardée car son format était incorrect. Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { person } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/places.js b/dashboard/src/recoil/places.js index bf7fea4ef8..da223235a8 100644 --- a/dashboard/src/recoil/places.js +++ b/dashboard/src/recoil/places.js @@ -32,7 +32,7 @@ export const preparePlaceForEncryption = (place, { checkRequiredFields = true } toast.error( "Le lieu n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { place } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/relPersonPlace.js b/dashboard/src/recoil/relPersonPlace.js index a7c519b2a5..6e38139b9c 100644 --- a/dashboard/src/recoil/relPersonPlace.js +++ b/dashboard/src/recoil/relPersonPlace.js @@ -35,7 +35,7 @@ export const prepareRelPersonPlaceForEncryption = (relPersonPlace, { checkRequir toast.error( "Le lieu n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { relPersonPlace } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/rencontres.js b/dashboard/src/recoil/rencontres.js index 51bdea9383..0082d3e282 100644 --- a/dashboard/src/recoil/rencontres.js +++ b/dashboard/src/recoil/rencontres.js @@ -38,7 +38,7 @@ export const prepareRencontreForEncryption = (rencontre, { checkRequiredFields = toast.error( "La rencontre n'a pas été sauvegardée car son format était incorrect. Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { rencontre } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/reports.js b/dashboard/src/recoil/reports.js index a2a6d2dc16..84a8121b7a 100644 --- a/dashboard/src/recoil/reports.js +++ b/dashboard/src/recoil/reports.js @@ -84,7 +84,7 @@ export const prepareReportForEncryption = (report, { checkRequiredFields = true toast.error( "Le compte-rendu n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { report } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/territory.js b/dashboard/src/recoil/territory.js index d334445878..aa4bf8029e 100644 --- a/dashboard/src/recoil/territory.js +++ b/dashboard/src/recoil/territory.js @@ -32,7 +32,7 @@ export const prepareTerritoryForEncryption = (territory, { checkRequiredFields = toast.error( "Le territoire n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { territory } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/territoryObservations.js b/dashboard/src/recoil/territoryObservations.js index 8f96f17d95..089043493a 100644 --- a/dashboard/src/recoil/territoryObservations.js +++ b/dashboard/src/recoil/territoryObservations.js @@ -110,7 +110,7 @@ export const prepareObsForEncryption = toast.error( "L'observation n'a pas été sauvegardée car son format était incorrect. Vous pouvez vérifier son contenu et tenter de la sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { obs } }); + capture(error); throw error; } } diff --git a/dashboard/src/recoil/treatments.ts b/dashboard/src/recoil/treatments.ts index 5c0e3ca475..dab2232c80 100644 --- a/dashboard/src/recoil/treatments.ts +++ b/dashboard/src/recoil/treatments.ts @@ -47,7 +47,7 @@ export const prepareTreatmentForEncryption = (treatment: TreatmentInstance, { ch toast.error( "Le traitement n'a pas été sauvegardé car son format était incorrect. Vous pouvez vérifier son contenu et tenter de le sauvegarder à nouveau. L'équipe technique a été prévenue et va travailler sur un correctif." ); - capture(error, { extra: { treatment } }); + capture(error); throw error; } } diff --git a/dashboard/src/scenes/person/components/PersonDocuments.tsx b/dashboard/src/scenes/person/components/PersonDocuments.tsx index 2d5e8e43fb..4d4a4e5695 100644 --- a/dashboard/src/scenes/person/components/PersonDocuments.tsx +++ b/dashboard/src/scenes/person/components/PersonDocuments.tsx @@ -153,7 +153,7 @@ const PersonDocuments = ({ person }: PersonDocumentsProps) => { toast.success(documentOrFolder.type === 'document' ? 'Document mis à jour' : 'Dossier mis à jour'); } else { toast.error('Erreur lors de la mise à jour du document, vous pouvez contactez le support'); - capture('Error while updating treatment document', { _person, document }); + capture('Error while updating treatment document', { personResponseError: personResponse.error }); } }} onAddDocuments={async (newDocuments) => { diff --git a/dashboard/src/scenes/person/components/PersonDocumentsMedical.tsx b/dashboard/src/scenes/person/components/PersonDocumentsMedical.tsx index a93fc79bf5..0d4e38e0fd 100644 --- a/dashboard/src/scenes/person/components/PersonDocumentsMedical.tsx +++ b/dashboard/src/scenes/person/components/PersonDocumentsMedical.tsx @@ -153,7 +153,7 @@ const PersonDocumentsMedical = ({ person }: PersonDocumentsProps) => { return true; } else { toast.error('Erreur lors de la suppression du document, vous pouvez contactez le support'); - capture('Error while deleting treatment document', { treatment, document, treatmentResponse }); + capture('Error while deleting treatment document', { treatmentResponse }); } } if (documentOrFolder.linkedItem.type === 'consultation') { @@ -178,7 +178,7 @@ const PersonDocumentsMedical = ({ person }: PersonDocumentsProps) => { return true; } else { toast.error('Erreur lors de la suppression du document, vous pouvez contactez le support'); - capture('Error while deleting consultation document', { consultation, document, consultationResponse }); + capture('Error while deleting consultation document', { consultationResponse }); } } if (documentOrFolder.linkedItem.type === 'medical-file') { @@ -202,7 +202,7 @@ const PersonDocumentsMedical = ({ person }: PersonDocumentsProps) => { return true; } else { toast.error('Erreur lors de la suppression du document, vous pouvez contactez le support'); - capture('Error while deleting medical file document', { medicalFile, document, medicalFileResponse }); + capture('Error while deleting medical file document', { medicalFileResponse }); } } return false; @@ -237,7 +237,7 @@ const PersonDocumentsMedical = ({ person }: PersonDocumentsProps) => { toast.success('Document mis à jour'); } else { toast.error('Erreur lors de la mise à jour du document, vous pouvez contactez le support'); - capture('Error while updating treatment document', { treatment, document, treatmentResponse }); + capture('Error while updating treatment document', { treatmentResponse }); } } if (documentOrFolder.linkedItem.type === 'consultation') { @@ -269,7 +269,7 @@ const PersonDocumentsMedical = ({ person }: PersonDocumentsProps) => { toast.success('Document mis à jour'); } else { toast.error('Erreur lors de la mise à jour du document, vous pouvez contactez le support'); - capture('Error while updating consultation document', { consultation, document, consultationResponse }); + capture('Error while updating consultation document', { consultationResponse }); } } if (documentOrFolder.linkedItem.type === 'medical-file') { @@ -300,7 +300,7 @@ const PersonDocumentsMedical = ({ person }: PersonDocumentsProps) => { toast.success('Document mis à jour'); } else { toast.error('Erreur lors de la mise à jour du document, vous pouvez contactez le support'); - capture('Error while updating medical file document', { medicalFile, document, medicalFileResponse }); + capture('Error while updating medical file document', { medicalFileResponse }); } } }} @@ -365,12 +365,12 @@ const PersonDocumentsMedical = ({ person }: PersonDocumentsProps) => { return true; } else { toast.error('Erreur lors de la mise à jour des documents, vous pouvez contactez le support'); - capture('Error while updating medical file documents reorder', { nextDocuments, medicalDocumentsResponse }); + capture('Error while updating medical file documents reorder', { medicalDocumentsResponse }); } return false; } catch (e) { toast.error('Erreur lors de la mise à jour des documents, vous pouvez contactez le support'); - capture(e, { nextDocuments, message: 'Error while updating documents order' }); + capture(e, { message: 'Error while updating documents order' }); } return false; }} diff --git a/dashboard/src/scenes/reception/view.js b/dashboard/src/scenes/reception/view.js index 785e64bdb3..3e3cbd0704 100644 --- a/dashboard/src/scenes/reception/view.js +++ b/dashboard/src/scenes/reception/view.js @@ -196,7 +196,7 @@ const Reception = () => { } setAddingPassage(false); } catch (e) { - capture(e, { extra: { selectedPersons, currentTeam }, user }); + capture(e, { extra: { selectedPersons: selectedPersons.map((p) => p._id), currentTeam }, user }); toast.error("Désolé une erreur est survenue, l'équipe technique est prévenue"); } }; diff --git a/dashboard/src/scenes/report/view-old.js b/dashboard/src/scenes/report/view-old.js index d431018179..12058895c8 100644 --- a/dashboard/src/scenes/report/view-old.js +++ b/dashboard/src/scenes/report/view-old.js @@ -1454,32 +1454,28 @@ const CommentCreatedAt = ({ date, comments, medical }) => { data={data} noData="Pas de commentaire ajouté ce jour" onRowClick={(comment) => { - try { - const searchParams = new URLSearchParams(history.location.search); - switch (comment.type) { - case 'action': - searchParams.set('actionId', comment.action._id); - history.push(`?${searchParams.toString()}`); - break; - case 'person': - history.push(`/person/${comment.person._id}`); - break; - case 'consultation': - searchParams.set('consultationId', comment.consultation._id); - history.push(`?${searchParams.toString()}`); - break; - case 'treatment': - searchParams.set('treatmentId', comment.treatment._id); - history.push(`?${searchParams.toString()}`); - break; - case 'medical-file': - history.push(`/person/${comment.person._id}?tab=Dossier+Médical`); - break; - default: - break; - } - } catch (errorLoadingComment) { - capture(errorLoadingComment, { extra: { message: 'error loading comment from report', comment, date } }); + const searchParams = new URLSearchParams(history.location.search); + switch (comment.type) { + case 'action': + searchParams.set('actionId', comment.action._id); + history.push(`?${searchParams.toString()}`); + break; + case 'person': + history.push(`/person/${comment.person._id}`); + break; + case 'consultation': + searchParams.set('consultationId', comment.consultation._id); + history.push(`?${searchParams.toString()}`); + break; + case 'treatment': + searchParams.set('treatmentId', comment.treatment._id); + history.push(`?${searchParams.toString()}`); + break; + case 'medical-file': + history.push(`/person/${comment.person._id}?tab=Dossier+Médical`); + break; + default: + break; } }} rowKey="_id" diff --git a/dashboard/src/scenes/search/index.js b/dashboard/src/scenes/search/index.js index 26930c3660..9219c7f1f6 100644 --- a/dashboard/src/scenes/search/index.js +++ b/dashboard/src/scenes/search/index.js @@ -6,7 +6,6 @@ import ActionStatus from '../../components/ActionStatus'; import Table from '../../components/table'; import Observation from '../territory-observations/view'; import dayjs from 'dayjs'; -import { capture } from '../../services/sentry'; import UserName from '../../components/UserName'; import Search from '../../components/search'; import TagTeam from '../../components/TagTeam'; @@ -646,11 +645,7 @@ const Comments = ({ comments }) => { data={comments} noData="Pas de commentaire" onRowClick={(comment) => { - try { - history.push(`/${comment.type}/${comment[comment.type]._id}`); - } catch (errorLoadingComment) { - capture(errorLoadingComment, { extra: { message: 'error loading comment from search', comment } }); - } + history.push(`/${comment.type}/${comment[comment.type]._id}`); }} rowKey="_id" columns={[ diff --git a/dashboard/src/scenes/stats/Blocks.js b/dashboard/src/scenes/stats/Blocks.js index 663e0f50a6..fe04c8a42d 100644 --- a/dashboard/src/scenes/stats/Blocks.js +++ b/dashboard/src/scenes/stats/Blocks.js @@ -1,6 +1,4 @@ -import React from 'react'; import { getDuration } from './utils'; -import { capture } from '../../services/sentry'; import Card from '../../components/Card'; export const Block = ({ data, title = 'Nombre de personnes suivies', help }) => ( @@ -25,28 +23,23 @@ export const BlockDateWithTime = ({ data, field, help }) => { const twoDecimals = (number) => Math.round(number * 100) / 100; export const BlockTotal = ({ title, unit, data, field, help }) => { - try { - if (!data.length) { - return ; - } - const dataWithOnlyNumbers = data.filter((item) => Boolean(item[field])).filter((e) => !isNaN(Number(e[field]))); - const total = dataWithOnlyNumbers.reduce((total, item) => total + Number(item[field]), 0); - const avg = total / dataWithOnlyNumbers.length; - return ( - - Moyenne: {isNaN(avg) ? '-' : twoDecimals(avg)} - - } - /> - ); - } catch (errorBlockTotal) { - capture('error block total', errorBlockTotal, { title, unit, data, field }); + if (!data.length) { + return ; } - return null; + const dataWithOnlyNumbers = data.filter((item) => Boolean(item[field])).filter((e) => !isNaN(Number(e[field]))); + const total = dataWithOnlyNumbers.reduce((total, item) => total + Number(item[field]), 0); + const avg = total / dataWithOnlyNumbers.length; + return ( + + Moyenne: {isNaN(avg) ? '-' : twoDecimals(avg)} + + } + /> + ); }; diff --git a/dashboard/src/services/api.js b/dashboard/src/services/api.js index 6623aa6ca0..44996df18f 100644 --- a/dashboard/src/services/api.js +++ b/dashboard/src/services/api.js @@ -58,7 +58,7 @@ export const encryptItem = async (item) => { decryptDBItem({ encryptedContent, encryptedEntityKey }, hashedOrgEncryptionKey); } catch (e) { // TODO: remove when debug is done - capture('error decrypting item after encrypting', { extra: { e, item } }); + capture('error decrypting item after encrypting', { extra: { e, item: item._id } }); } item.encrypted = encryptedContent;