This commit is contained in:
Pierre de La Morinerie 2021-09-09 12:48:34 -05:00 committed by simon lehericey
parent 69bb174e29
commit 745e19bb8e
7 changed files with 51 additions and 27 deletions

View file

@ -15,16 +15,16 @@ module NewAdministrateur
@procedure.save
redirect_to admin_procedure_api_particulier_jeton_path(procedure_id: @procedure.id),
notice: "Le jeton a bien été mis à jour"
notice: t('.token_ok')
else
flash.now.alert = "Mise à jour impossible : le jeton n'est pas valide<br /><br />Vérifier le auprès de <a href='https://datapass.api.gouv.fr/'>https://datapass.api.gouv.fr/</a>"
flash.now.alert = t('.invalid_token')
render :show
end
rescue APIParticulier::Error::Unauthorized
flash.now.alert = "Mise à jour impossible : le jeton n'a pas été trouvé ou n'est pas actif<br /><br />Vérifier le auprès de <a href='https://datapass.api.gouv.fr/'>https://datapass.api.gouv.fr/</a>"
flash.now.alert = t('.not_found_token')
render :show
rescue APIParticulier::Error::HttpError
flash.now.alert = "Mise à jour impossible : une erreur réseau est survenue"
flash.now.alert = t('.network_error')
render :show
end

View file

@ -267,7 +267,7 @@ class Procedure < ApplicationRecord
if: -> { new_record? || created_at > Date.new(2020, 11, 13) }
validates :api_entreprise_token, jwt_token: true, allow_blank: true
validates :api_particulier_token, format: { with: /\A[A-Za-z0-9\-_=.]{15,}\z/, message: "n'est pas un jeton valide" }, allow_blank: true
validates :api_particulier_token, format: { with: /\A[A-Za-z0-9\-_=.]{15,}\z/ }, allow_blank: true
before_save :update_juridique_required
after_initialize :ensure_path_exists

View file

@ -1,7 +1,7 @@
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to('Démarches', admin_procedures_path),
link_to(@procedure.libelle, admin_procedure_path(@procedure)),
'Jeton Particulier'] }
Procedure.human_attribute_name(:jeton_api_particulier)] }
.container
.flex
@ -9,12 +9,12 @@
- if @procedure.api_particulier_token.blank?
%div
%span.icon.clock
%p.card-admin-status-todo À définir
%p.card-admin-status-todo= t('.needs_configuration')
- else
%div
%span.icon.accept
%p.card-admin-status-accept Déjà rempli
%p.card-admin-status-accept= t('.already_configured')
%div
%p.card-admin-title
Jeton API particulier
%p.button Modifier
= Procedure.human_attribute_name(:jeton_api_particulier)
%p.button= t('views.shared.actions.edit')

View file

@ -1,28 +1,22 @@
= render partial: 'new_administrateur/breadcrumbs',
locals: { steps: [link_to('Démarches', admin_procedures_path),
link_to(@procedure.libelle, admin_procedure_path(@procedure)),
link_to('Jeton Particulier', admin_procedure_api_particulier_path(@procedure)),
link_to(Procedure.human_attribute_name(:jeton_api_particulier), admin_procedure_api_particulier_path(@procedure)),
'Jeton'] }
.container
%h1.page-title
Configurer le jeton API Particulier
= t('.configure_token')
.container
%h1
= form_with model: @procedure, url: admin_procedure_api_particulier_jeton_path, local: true, html: { class: 'form' } do |f|
%p.explication
Démarches Simplifiées utilise
= link_to 'API Particulier', "https://api.gouv.fr/les-api/api-particulier"
qui permet de récupérer les données familiales (CAF).
Si votre démarche nécessite des autorisations spécifiques que Démarches
Simplifiées n'a pas par défaut, merci de renseigner ici le jeton
= link_to 'API Particulier', "https://api.gouv.fr/les-api/api-particulier/demande-acces"
propre à votre démarche.
= t('.api_particulier_description_html', app_name: APPLICATION_NAME)
= f.label :api_particulier_token, "Jeton"
= f.label :api_particulier_token
.desc.mb-2
%p Il doit contenir au minimum 15 caractères.
%p= t('.token_description')
= f.password_field :api_particulier_token, class: 'form-control', required: :required
.text-right
= f.button 'Enregistrer', class: 'button primary send'
= f.button t('views.shared.actions.save'), class: 'button primary send'

View file

@ -203,15 +203,15 @@
- if @procedure.api_particulier_token.present?
%div
%span.icon.accept
%p.card-admin-status-accept Validé
%p.card-admin-status-accept= t('.ready')
- else
%div
%span.icon.clock
%p.card-admin-status-todo À configurer
%p.card-admin-status-todo= t('.needs_configuration')
%div
%p.card-admin-title Jeton Particulier
%p.card-admin-subtitle Configurer le jeton API particulier
%p.button Modifier
%p.card-admin-title= Procedure.human_attribute_name(:api_particulier_token)
%p.card-admin-subtitle= t('.configure_api_particulier_token')
%p.button= t('views.shared.actions.edit')
= link_to monavis_admin_procedure_path(@procedure), class: 'card-admin' do
- if @procedure.monavis_embed.present?

View file

@ -97,6 +97,9 @@ fr:
first: Premier
truncate: '&hellip;'
shared:
actions:
save: Enregistrer
edit: Modifier
greetings:
hello: Bonjour,
best_regards: Bonne journée,
@ -366,3 +369,22 @@ fr:
no_establishment: "Aucun établissement nest associé à ce dossier"
identity_saved: "Identité enregistrée"
no_longer_available: "Lattestation n'est plus disponible sur ce dossier."
new_administrateur:
jeton_particulier:
show:
configure_token: "Configurer le jeton API Particulier"
api_particulier_description_html: "%{app_name} utilise <a href=\"https://api.gouv.fr/les-api/api-particulier\">API Particulier</a> qui permet de récupérer les données familiales (CAF).<br />Renseignez ici le <a href=\"https://api.gouv.fr/les-api/api-particulier/demande-acces\">jeton API Particulier</a> propre à votre démarche."
token_description: "Il doit contenir au minimum 15 caractères."
update:
token_ok: "Le jeton a bien été mis à jour"
no_scopes_token: "Mise à jour impossible : le jeton n'a pas acces aux données.<br /><br />Vérifier le auprès de <a href='https://datapass.api.gouv.fr/'>https://datapass.api.gouv.fr/</a>"
not_found_token: "Mise à jour impossible : le jeton n'a pas été trouvé ou n'est pas actif<br /><br />Vérifier le auprès de <a href='https://datapass.api.gouv.fr/'>https://datapass.api.gouv.fr/</a>"
network_error: "Mise à jour impossible : une erreur réseau est survenue"
procedures:
show:
ready: "Validé"
needs_configuration: "À configurer"
configure_api_particulier_token: "Configurer le jeton API particulier"
api_particulier:
already_configured: "Déjà rempli"
needs_configuration: "À remplir"

View file

@ -16,3 +16,11 @@ fr:
aasm_state/hidden: Suprimée
declarative_with_state/en_instruction: En instruction
declarative_with_state/accepte: Accepté
api_particulier_token: Jeton API Particulier
errors:
models:
procedure:
attributes:
api_particulier_token:
invalid: 'na pas le bon format'