From 08ff5105cb29e5a0748d56b483626414fe65c4d7 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 | 42 +++++------ dashboard/src/services/api.js | 2 +- 38 files changed, 109 insertions(+), 138 deletions(-) diff --git a/api/src/controllers/organisation.js b/api/src/controllers/organisation.js index 2db267533..bdcdc9da6 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 4cb1d8b81..dcc55dd31 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 c8bd50f14..a6725d2a0 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 f4f2a6d1b..6a451e713 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 84a77115e..de55033ab 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 106b1f9d6..b7d5e867e 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 e114c1254..950988df3 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 9ddf13e53..9272a3d84 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 a5c280411..8b9f92cfc 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 7d3849ec5..e836e163b 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 feeb70e28..ece8d7331 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 cbd8a5351..d80b85b2e 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 6419f0fcb..7b04a5004 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 28467ee64..025ff8758 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 8fdadd289..1fc88b480 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 de3a0a556..5c43fe2c0 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 811bf4900..65fd7ad1a 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 0aa8862ad..cab50a6d9 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 168dc2b10..ea4c82aa5 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 79134f466..d6693dbe0 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 dc4643cea..fbc6732fb 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 6b29c741b..eca09f703 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 c8ccbaea6..b2c88d6c0 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 5c256101c..277b7fb59 100644 --- a/dashboard/src/recoil/persons.ts +++ b/dashboard/src/recoil/persons.ts @@ -149,7 +149,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 bf7fea4ef..da223235a 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 a7c519b2a..6e38139b9 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 51bdea938..0082d3e28 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 a2a6d2dc1..84a8121b7 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 d33444587..aa4bf8029 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 8f96f17d9..089043493 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 5c0e3ca47..dab2232c8 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 2d5e8e43f..4d4a4e569 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 a93fc79bf..0d4e38e0f 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 785e64bdb..3e3cbd070 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 d43101817..12058895c 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 26930c366..9219c7f1f 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 bc12889c9..de495c135 100644 --- a/dashboard/src/scenes/stats/Blocks.js +++ b/dashboard/src/scenes/stats/Blocks.js @@ -1,5 +1,4 @@ import { getDuration } from './utils'; -import { capture } from '../../services/sentry'; import Card from '../../components/Card'; export const Block = ({ data, title = 'Nombre de personnes suivies', help = null }) => ( @@ -24,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 6623aa6ca..44996df18 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;