diff --git a/app/models/authorization_request/api_e_pro.rb b/app/models/authorization_request/api_e_pro.rb new file mode 100644 index 000000000..d7a651186 --- /dev/null +++ b/app/models/authorization_request/api_e_pro.rb @@ -0,0 +1,19 @@ +class AuthorizationRequest::APIEPro < AuthorizationRequest + include AuthorizationExtensions::BasicInfos + include AuthorizationExtensions::PersonalData + include AuthorizationExtensions::CadreJuridique + include AuthorizationExtensions::GDPRContacts + include AuthorizationExtensions::OperationalAcceptance + include AuthorizationExtensions::SafetyCertification + include AuthorizationExtensions::Volumetrie + + VOLUMETRIES = { + '500 appels / minute': 500, + }.freeze + + add_document :maquette_projet, content_type: ['application/pdf'], size: { less_than: 10.megabytes } + + add_attributes :date_prevue_mise_en_production + + contact :contact_technique, validation_condition: ->(record) { record.need_complete_validation?(:contacts) } +end diff --git a/app/models/authorization_request/api_e_pro_sandbox.rb b/app/models/authorization_request/api_e_pro_sandbox.rb new file mode 100644 index 000000000..6bb6fa4f3 --- /dev/null +++ b/app/models/authorization_request/api_e_pro_sandbox.rb @@ -0,0 +1,15 @@ +class AuthorizationRequest::APIEProSandbox < AuthorizationRequest + include AuthorizationExtensions::BasicInfos + include AuthorizationExtensions::PersonalData + include AuthorizationExtensions::CadreJuridique + include AuthorizationExtensions::GDPRContacts + + add_document :maquette_projet, content_type: ['application/pdf'], size: { less_than: 10.megabytes } + + add_attributes :date_prevue_mise_en_production, + :volumetrie_approximative + + contact :contact_technique, validation_condition: ->(record) { record.need_complete_validation?(:contacts) } + + add_checkbox :dpd_homologation_checkbox +end diff --git a/config/authorization_definitions.yml b/config/authorization_definitions.yml index 99a40de24..5630bb72a 100644 --- a/config/authorization_definitions.yml +++ b/config/authorization_definitions.yml @@ -681,9 +681,9 @@ shared: description: "FEEDME" provider: "dgfip" kind: 'api' - # FEEDME link: "https://api.gouv.fr/producteurs/dgfip" cgu_link: "/public/cgus/dgfip/cgu_bas_opale_v.2023_11.pdf" + # FEED ME access_link: "https://api-opale.gouv.fr/tokens/%" public: false stage: @@ -742,7 +742,6 @@ shared: - name: legal - name: contacts - api_ocfi: name: API OCFI description: "FEEDME" @@ -766,3 +765,49 @@ shared: - name: operational_acceptance - name: safety_certification - name: volumetrie + + api_e_pro_sandbox: + name: API E-PRO + description: "FEEDME" + provider: "dgfip" + kind: 'api' + link: "https://api.gouv.fr/producteurs/dgfip" + cgu_link: "/public/cgus/dgfip/prc_v1/cgu_bas_e_pro_v.2023_11.pdf" + # FEEDME + access_link: "https://api-e-pro.gouv.fr/tokens/%" + public: false + stage: + type: sandbox + next: + id: api_e_pro + form_id: api-e-pro-production + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: contacts + + api_e_pro: + name: API E-PRO + description: "FEEDME" + provider: "dgfip" + kind: 'api' + link: "https://api.gouv.fr/producteurs/dgfip" + cgu_link: "/public/cgus/dgfip/prc_v1/cgu_prod_e_pro_v.2023_11.pdf" + # FEEDME + access_link: "https://api-e-pro.gouv.fr/tokens/%" + public: false + stage: + type: production + previouses: + - id: api_e_pro_sandbox + form_id: api-e-pro-sandbox + blocks: + - name: basic_infos + - name: personal_data + - name: legal + - name: contacts + - name: operational_acceptance + - name: safety_certification + - name: volumetrie + diff --git a/config/authorization_request_forms/api_e_pro.yml b/config/authorization_request_forms/api_e_pro.yml new file mode 100644 index 000000000..6cc4ca17a --- /dev/null +++ b/config/authorization_request_forms/api_e_pro.yml @@ -0,0 +1,74 @@ +api-e-pro-sandbox: + description: FEEDME + introduction: | + Notre équipe d’instruction étudiera votre demande en bac à sable, lorsqu’elle sera validée vous pourrez compléter la suite de votre demande. + +
+
+
1.
+
+

Le bac à sable

+

Dans un premier temps, une demande d’habilitation au bac à sable de l'API E-PRO

+
+
+ +
+
2.
+
+

La production

+

Dans un second temps, une demande d’habilitation à la production de l'API E-PRO

+
+
+ +
+
3.
+
+

Votre service est ouvert !

+

Une fois vos habilitations validées, vous pouvez ouvrir votre service !

+
+
+
+ authorization_request: APIEProSandbox + steps: &api_e_pro_steps + - name: basic_infos + - name: personal_data + - name: legal + - name: contacts + +api-e-pro-production: + description: FEEDME + introduction: | + Votre demande d'accès au bac à sable a été validée, vous pouvez à présent poursuivre votre demande en demandant les accès à la production. + +
+
+
1.
+
+

Le bac à sable

+

Dans un premier temps, une demande d’habilitation au bac à sable de l'API E-PRO

+
+
+ +
+
2.
+
+

La production

+

Dans un second temps, une demande d’habilitation à la production de l'API E-PRO

+
+
+ +
+
3.
+
+

Votre service est ouvert !

+

Une fois vos habilitations validées, vous pouvez ouvrir votre service !

+
+
+
+ authorization_request: APIEPro + static_blocks: *api_e_pro_steps + steps: + - name: operational_acceptance + - name: legal + - name: safety_certification + - name: volumetrie diff --git a/features/habilitations/api_e_pro.feature b/features/habilitations/api_e_pro.feature new file mode 100644 index 000000000..ba556af8a --- /dev/null +++ b/features/habilitations/api_e_pro.feature @@ -0,0 +1,54 @@ +# language: fr + +Fonctionnalité: Soumission d'une demande d'habilitation API E-PRO + Contexte: + Sachant que je suis un demandeur + Et que je me connecte + + Scénario: Je soumets une demande d'habilitation valide à l'étape Bac à sable + * je démarre une nouvelle demande d'habilitation "API E-PRO" à l'étape "Bac à sable" + * je renseigne les infos de bases du projet + * je clique sur "Suivant" + + * je renseigne les infos concernant les données personnelles + * je clique sur "Suivant" + + * je renseigne le cadre légal + * je clique sur "Suivant" + + * je renseigne les informations des contacts RGPD + * je renseigne les informations du contact technique + * je clique sur "Suivant" + + * j'adhère aux conditions générales + + * je coche "J’atteste que mon organisation devra déclarer à la DGFiP l’accomplissement des formalités en matière de protection des données à caractère personnel et qu’elle veillera à procéder à l’homologation de sécurité de son projet." + + * je clique sur "Soumettre la demande d'habilitation" + + Alors il y a un message de succès contenant "soumise avec succès" + Et je suis sur la page "Demandes et habilitations" + + Scénario: Je soumets une demande d'habilitation valide à l'étape Production + Quand j'ai 1 demande d'habilitation "API E-PRO" à l'étape "Bac à sable" validée + Et que je me rends sur mon tableau de bord + Et je clique sur "Démarrer ma demande d’habilitation en production" + Et que je clique sur "Débuter ma demande" + + * je renseigne la recette fonctionnelle + * je clique sur "Suivant" + + * je renseigne le cadre légal + * je clique sur "Suivant" + + * je renseigne l'homologation de sécurité + * je clique sur "Suivant" + + * je renseigne la volumétrie + * je clique sur "Suivant" + + * j'adhère aux conditions générales + * je clique sur "Soumettre la demande d'habilitation" + + Alors il y a un message de succès contenant "soumise avec succès" + Et je suis sur la page "Demandes et habilitations" diff --git a/public/cgus/dgfip/pcr_v1/cgu_bas_e_pro_v.2023_11.pdf b/public/cgus/dgfip/pcr_v1/cgu_bas_e_pro_v.2023_11.pdf new file mode 100644 index 000000000..5cd65a10c Binary files /dev/null and b/public/cgus/dgfip/pcr_v1/cgu_bas_e_pro_v.2023_11.pdf differ diff --git a/public/cgus/dgfip/pcr_v1/cgu_prod_e_pro_v.2023_11.pdf b/public/cgus/dgfip/pcr_v1/cgu_prod_e_pro_v.2023_11.pdf new file mode 100644 index 000000000..092ec2cda Binary files /dev/null and b/public/cgus/dgfip/pcr_v1/cgu_prod_e_pro_v.2023_11.pdf differ diff --git a/spec/factories/authorization_requests.rb b/spec/factories/authorization_requests.rb index 11d336a1e..1cfc1146c 100644 --- a/spec/factories/authorization_requests.rb +++ b/spec/factories/authorization_requests.rb @@ -598,5 +598,28 @@ with_operational_acceptance with_volumetrie end + + trait :api_e_pro_sandbox do + type { 'AuthorizationRequest::APIEProSandbox' } + + form_uid { 'api-e-pro-sandbox' } + + with_basic_infos + with_personal_data + with_cadre_juridique + end + + trait :api_e_pro_production do + type { 'AuthorizationRequest::APIEPro' } + + form_uid { 'api-e-pro-production' } + + with_basic_infos + with_personal_data + with_cadre_juridique + with_safety_certification + with_operational_acceptance + with_volumetrie + end end end