From 820cb4bd27faf4d787d9c9b16add6eb2a1cd4112 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Wed, 11 Jan 2023 11:38:44 +0100 Subject: [PATCH 1/2] fix(rna): some associations don't have date_publication https://sentry.io/organizations/demarches-simplifiees/issues/3698792231/events/fde901fac5a44129adcafc891d59d086/?project=1429550 --- app/schemas/association.json | 14 ++++++++++---- spec/lib/api_entreprise/rna_adapter_spec.rb | 1 - 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/schemas/association.json b/app/schemas/association.json index dd748ca82..9bcf77078 100644 --- a/app/schemas/association.json +++ b/app/schemas/association.json @@ -29,8 +29,15 @@ "format": "date" }, "association_date_publication": { - "type": "string", - "format": "date" + "anyOf": [ + { + "type": "string", + "format": "date" + }, + { + "type": "null" + } + ] }, "association_date_dissolution": { "anyOf": [ @@ -236,7 +243,6 @@ "required": [ "association_titre", "association_rna", - "association_date_declaration", - "association_date_publication" + "association_date_declaration" ] } diff --git a/spec/lib/api_entreprise/rna_adapter_spec.rb b/spec/lib/api_entreprise/rna_adapter_spec.rb index a992f3a5a..f234cf0b9 100644 --- a/spec/lib/api_entreprise/rna_adapter_spec.rb +++ b/spec/lib/api_entreprise/rna_adapter_spec.rb @@ -30,7 +30,6 @@ describe APIEntreprise::RNAAdapter do expect(subject["association_titre"]).to eq('UN SUR QUATRE') expect(subject["association_objet"]).to eq("valoriser, transmettre et partager auprès des publics les plus larges possibles, les bienfaits de l'immigration, la richesse de la diversité et la curiosité de l'autre autrement") expect(subject["association_date_declaration"]).to eq('2014-01-24') - expect(subject["association_date_publication"]).to eq('2014-02-08') end end From e63e4fc97542f6be4f5d17c8e6d49b15686f4f1c Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Wed, 11 Jan 2023 12:12:24 +0100 Subject: [PATCH 2/2] fix(sentry/rna): add error context when RNA schema failed --- app/lib/api_entreprise/rna_adapter.rb | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/lib/api_entreprise/rna_adapter.rb b/app/lib/api_entreprise/rna_adapter.rb index 40d72c001..4f3a163c2 100644 --- a/app/lib/api_entreprise/rna_adapter.rb +++ b/app/lib/api_entreprise/rna_adapter.rb @@ -15,15 +15,23 @@ class APIEntreprise::RNAAdapter < APIEntreprise::Adapter def process_params params = data_source[:association] - params = params&.slice(*attr_to_fetch) if @depreciated - params[:rna] = data_source.dig(:association, :id) - if params[:rna].present? && valid_params?(params) - params = params.transform_keys { |k| :"association_#{k}" }.deep_stringify_keys - raise InvalidSchemaError.new(schemer.validate(params).to_a) unless schemer.valid?(params) - params - else - {} + Sentry.with_scope do |scope| + scope.set_tags(siret: @siret) + scope.set_extras(source: params) + + params = params&.slice(*attr_to_fetch) if @depreciated + params[:rna] = data_source.dig(:association, :id) + + if params[:rna].present? && valid_params?(params) + params = params.transform_keys { |k| :"association_#{k}" }.deep_stringify_keys + + raise InvalidSchemaError.new(schemer.validate(params).to_a) unless schemer.valid?(params) + + params + else + {} + end end end