an admin can save its sources
This commit is contained in:
parent
8d747ff16e
commit
2e1bed8748
3 changed files with 61 additions and 1 deletions
|
@ -3,11 +3,30 @@ module NewAdministrateur
|
|||
before_action :retrieve_procedure
|
||||
|
||||
def show
|
||||
sources_service = APIParticulier::Services::SourcesService.new(@procedure)
|
||||
@available_sources = sources_service.available_sources
|
||||
end
|
||||
|
||||
def update
|
||||
if @procedure.update(api_particulier_sources: sources_params)
|
||||
redirect_to admin_procedure_api_particulier_sources_path(@procedure), notice: t('.sources_ok')
|
||||
else
|
||||
flash.now.alert = @procedure.errors.full_messages
|
||||
render :show
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sources_params
|
||||
requested_sources = params
|
||||
.with_defaults(api_particulier_sources: {})
|
||||
.to_unsafe_hash[:api_particulier_sources]
|
||||
|
||||
sources_service.sanitize(requested_sources)
|
||||
end
|
||||
|
||||
def sources_service
|
||||
@sources_service ||= APIParticulier::Services::SourcesService.new(@procedure)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -401,6 +401,8 @@ fr:
|
|||
title: "Définir les sources de données"
|
||||
data_sources: "Sources de données"
|
||||
explication_html: "<p>API Particulier facilite l’accès des administrations aux données familiales (CAF) pour simplifier les démarches administratives mises en œuvre par les collectivités et les administrations.<br> Cela permet aux administrations d’accéder à des informations certifiées à la source et ainsi : </p> <ul> <li>de s’affranchir des pièces justificatives lors des démarches en ligne,</li> <li>de réduire le nombre d’erreurs de saisie,</li> <li>d’écarter le risque de fraude documentaire.</li> </ul> <p> <strong>Important :</strong> les disposition de l'article <a href='https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000031366350&idArticle=LEGIARTI000031367412&dateTexte=&categorieLien=cid'>L144-8</a> n’autorisent que l’échange des informations strictement nécessaires pour traiter une démarche.<br /><br />En conséquence, ne sélectionnez ici que les données auxquelles vous aurez accès d’un point de vue légal.</p>"
|
||||
update:
|
||||
sources_ok: 'Mise à jour effectuée'
|
||||
procedures:
|
||||
show:
|
||||
ready: "Validé"
|
||||
|
|
|
@ -18,4 +18,43 @@ describe NewAdministrateur::SourcesParticulierController, type: :controller do
|
|||
expect(subject.body).not_to have_selector("input#api_particulier_sources_cnaf_enfants_[value=date_de_naissance][checked=checked]")
|
||||
end
|
||||
end
|
||||
|
||||
describe "#update" do
|
||||
let(:procedure) { create(:procedure, administrateur: admin, api_particulier_scopes: ['cnaf_enfants'], api_particulier_sources: {}) }
|
||||
let(:params) { { procedure_id: procedure.id }.merge(requested_sources) }
|
||||
|
||||
before do
|
||||
patch :update, params: params
|
||||
procedure.reload
|
||||
end
|
||||
|
||||
context 'when no source is requested' do
|
||||
let(:requested_sources) { {} }
|
||||
|
||||
it { expect(procedure.api_particulier_sources).to be_empty }
|
||||
end
|
||||
|
||||
context 'when a forbidden source is requested' do
|
||||
let(:requested_sources) do
|
||||
{
|
||||
api_particulier_sources: { cnaf: { enfants: ['forbidden'] } }
|
||||
}
|
||||
end
|
||||
|
||||
it { expect(procedure.api_particulier_sources).to be_empty }
|
||||
end
|
||||
|
||||
context 'when an authorized source is requested' do
|
||||
let(:requested_sources) do
|
||||
{
|
||||
api_particulier_sources: { cnaf: { enfants: ['noms_prenoms'] } }
|
||||
}
|
||||
end
|
||||
|
||||
it 'saves the source' do
|
||||
expect(procedure.api_particulier_sources).to eq("cnaf" => { "enfants" => ["noms_prenoms"] })
|
||||
expect(flash.notice).to eq(I18n.t(".new_administrateur.sources_particulier.update.sources_ok"))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue