From a507158fd72850e16aa311574ff0846a870f4cd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Delmaire?= Date: Thu, 28 Mar 2024 17:26:18 +0000 Subject: [PATCH] Make webhooks payload truly iso with v1 and more robust 1. intitule/description is not required and can't be undefined for some authorization requests 2. `contacts` was renamed `team_members` 3. `demarche` is an id, not a name 4. `team_members` has the applicant as "demandeur" --- ...ebhook_authorization_request_serializer.rb | 27 ++++++++++++++++--- app/serializers/webhook_serializer.rb | 2 +- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/serializers/webhook_authorization_request_serializer.rb b/app/serializers/webhook_authorization_request_serializer.rb index d4c9e2e66..48495680d 100644 --- a/app/serializers/webhook_authorization_request_serializer.rb +++ b/app/serializers/webhook_authorization_request_serializer.rb @@ -9,7 +9,6 @@ class WebhookAuthorizationRequestSerializer < ApplicationSerializer :previous_authorization_request_id, :copied_from_authorization_request_id - has_many(:contacts, serializer: ContactSerializer) has_many(:events, serializer: WebhookEventSerializer) do object.events.map(&:decorate) end @@ -18,9 +17,29 @@ class WebhookAuthorizationRequestSerializer < ApplicationSerializer object.scopes.to_h { |scope| [scope.to_sym, true] } end - def demarche = object.form.name - def status = object.state - def siret = object.organization.siret + def intitule = object.data['intitule'] + def description = object.data['description'] + def demarche = object.form.id + def status = object.state + def siret = object.organization.siret + + def team_members + object.contacts.map do |contact| + ContactSerializer.new(contact).serializable_hash + end << applicant_as_team_member + end + + def applicant_as_team_member + { + id: nil, + type: 'demandeur', + email: object.applicant.email, + given_name: object.applicant.given_name, + family_name: object.applicant.family_name, + phone_number: object.applicant.phone_number, + job: object.applicant.job_title, + } + end def previous_authorization_request_id = nil def copied_from_authorization_request_id = nil diff --git a/app/serializers/webhook_serializer.rb b/app/serializers/webhook_serializer.rb index 3745b6c41..527bd2d61 100644 --- a/app/serializers/webhook_serializer.rb +++ b/app/serializers/webhook_serializer.rb @@ -27,7 +27,7 @@ def to_json(*_args) private def model_type - authorization_request.class.name.underscore + "enrollment/#{authorization_request.class.name.underscore.split('/').last}" end def now