diff --git a/app/assets/stylesheets/start.scss b/app/assets/stylesheets/siret.scss similarity index 100% rename from app/assets/stylesheets/start.scss rename to app/assets/stylesheets/siret.scss diff --git a/app/controllers/backoffice/dossiers_controller.rb b/app/controllers/backoffice/dossiers_controller.rb index 189cbab65..e1f4c96ec 100644 --- a/app/controllers/backoffice/dossiers_controller.rb +++ b/app/controllers/backoffice/dossiers_controller.rb @@ -14,12 +14,8 @@ class Backoffice::DossiersController < ApplicationController @dossier = @dossier.decorate rescue ActiveRecord::RecordNotFound - redirect_start + flash.alert = t('errors.messages.dossier_not_found') + redirect_to url_for(controller: '/backoffice') end - private - - def redirect_start - redirect_to url_for(controller: '/start', action: :error_dossier) - end end diff --git a/app/controllers/carte_controller.rb b/app/controllers/carte_controller.rb index d36f24d14..2e11af799 100644 --- a/app/controllers/carte_controller.rb +++ b/app/controllers/carte_controller.rb @@ -4,7 +4,7 @@ class CarteController < ApplicationController def show @dossier = current_dossier rescue ActiveRecord::RecordNotFound - redirect_to url_for(controller: :start, action: :error_dossier) + redirect_to url_for(controller: :siret, action: :error_dossier) end def save_ref_api_carto diff --git a/app/controllers/description_controller.rb b/app/controllers/description_controller.rb index 7835f1e00..ba492d6b3 100644 --- a/app/controllers/description_controller.rb +++ b/app/controllers/description_controller.rb @@ -6,7 +6,8 @@ class DescriptionController < ApplicationController @procedure = @dossier.procedure rescue ActiveRecord::RecordNotFound - redirect_to url_for(controller: :start, action: :error_dossier) + flash.alert = t('errors.messages.dossier_not_found') + redirect_to url_for(controller: :siret) end def error diff --git a/app/controllers/dossiers_controller.rb b/app/controllers/dossiers_controller.rb index 07e27a368..240400bcd 100644 --- a/app/controllers/dossiers_controller.rb +++ b/app/controllers/dossiers_controller.rb @@ -5,16 +5,18 @@ class DossiersController < ApplicationController @etablissement = @dossier.etablissement @entreprise = @dossier.entreprise.decorate rescue ActiveRecord::RecordNotFound - redirect_to url_for(controller: :start, action: :error_dossier) + flash.alert = t('errors.messages.dossier_not_found') + redirect_to url_for(controller: :siret) end def create + procedure = Procedure.find(params['procedure_id']) @etablissement = Etablissement.new(SIADE::EtablissementAdapter.new(siret).to_params) @entreprise = Entreprise.new(SIADE::EntrepriseAdapter.new(siren).to_params) @dossier = Dossier.create @dossier.draft! - @dossier.procedure = Procedure.find(params['procedure_id']) + @dossier.procedure = procedure @dossier.save @entreprise.dossier = @dossier @@ -27,9 +29,11 @@ class DossiersController < ApplicationController redirect_to url_for(controller: :dossiers, action: :show, id: @dossier.id) rescue RestClient::ResourceNotFound - redirect_to url_for(controller: :start, action: :error_siret, procedure_id: params['procedure_id']) + flash.alert = t('errors.messages.invalid_siret') + redirect_to url_for(controller: :siret, procedure_id: params['procedure_id']) rescue ActiveRecord::RecordNotFound - redirect_to url_for(controller: :start, action: :error_dossier) + flash.alert = t('errors.messages.dossier_not_found') + redirect_to url_for(controller: :siret) end def update diff --git a/app/controllers/recapitulatif_controller.rb b/app/controllers/recapitulatif_controller.rb index 194cd0f0e..4552dbc3b 100644 --- a/app/controllers/recapitulatif_controller.rb +++ b/app/controllers/recapitulatif_controller.rb @@ -11,6 +11,7 @@ class RecapitulatifController < ApplicationController #TODO load user email @commentaire_email = 'user@email' rescue ActiveRecord::RecordNotFound - redirect_to url_for(controller: :start, action: :error_dossier) + flash.alert = t('errors.messages.dossier_not_found') + redirect_to url_for(controller: :siret) end end diff --git a/app/controllers/siret_controller.rb b/app/controllers/siret_controller.rb new file mode 100644 index 000000000..5f5bb976f --- /dev/null +++ b/app/controllers/siret_controller.rb @@ -0,0 +1,13 @@ +class SiretController < ApplicationController + before_action :authenticate_user! + def index + @procedure = Procedure.find(params['procedure_id']) + rescue ActiveRecord::RecordNotFound + error_procedure + end + + def error_procedure + render :file => "#{Rails.root}/public/404_procedure_not_found.html", :status => 404 + end + +end diff --git a/app/controllers/start_controller.rb b/app/controllers/start_controller.rb deleted file mode 100644 index 51eb5a053..000000000 --- a/app/controllers/start_controller.rb +++ /dev/null @@ -1,38 +0,0 @@ -class StartController < ApplicationController - before_action :authenticate_user! - def index - get_procedure_infos - - if @procedure.nil? - error_procedure - end - rescue ActiveRecord::RecordNotFound - error_procedure - end - - def error_procedure - render :file => "#{Rails.root}/public/404_procedure_not_found.html", :status => 404 - end - - def error_siret - get_procedure_infos - flash.now.alert = 'Ce SIRET n\'est pas valide' - render 'index' - end - - def error_login - flash.now.alert = 'Ce compte n\'existe pas' - render 'index' - end - - def error_dossier - flash.now.alert = 'Ce dossier n\'existe pas' - render 'index' - end - - private - - def get_procedure_infos - @procedure = Procedure.find(params['procedure_id']) - end -end diff --git a/app/views/start/_admin.html.haml b/app/views/siret/_admin.html.haml similarity index 100% rename from app/views/start/_admin.html.haml rename to app/views/siret/_admin.html.haml diff --git a/app/views/start/_pro.html.haml b/app/views/siret/_pro.html.haml similarity index 100% rename from app/views/start/_pro.html.haml rename to app/views/siret/_pro.html.haml diff --git a/app/views/start/index.html.haml b/app/views/siret/index.html.haml similarity index 92% rename from app/views/start/index.html.haml rename to app/views/siret/index.html.haml index fe9aa62d7..215baf74a 100644 --- a/app/views/start/index.html.haml +++ b/app/views/siret/index.html.haml @@ -5,5 +5,5 @@ Site de démonstration d’un service public de saisie d’un projet ou de dépôt d’une démarche administrative, auprès d’un ou plusieurs organismes publics, simplifié des informations déjà connues des administrations, grâce à la fourniture du numéro SIRET. .row - = render partial: '/start/pro' + = render partial: '/siret/pro' diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 6591b7048..dff830200 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -78,5 +78,7 @@ fr: not_saved: one: "1 erreur a empêché ce(tte) %{resource} d'être sauvegardé(e) :" other: "%{count} erreurs ont empêché ce(tte) %{resource} d'être sauvegardé(e) :" + dossier_not_found: "Le dossier n'existe pas" + invalid_siret: "Le siret est incorrect" diff --git a/config/routes.rb b/config/routes.rb index a192e08dd..69b95450a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -12,11 +12,11 @@ Rails.application.routes.draw do # root 'welcome#index' root 'users/dossiers#index' - get 'start' => 'start#index' - get 'start/index' - get 'start/error_siret' - get 'start/error_login' - get 'start/error_dossier' + get 'siret' => 'siret#index' + # get 'start/index' + # get 'start/error_siret' + # get 'start/error_login' + # get 'start/error_dossier' resources :dossiers do get '/demande' => 'demandes#show' diff --git a/spec/controllers/backoffice/dossiers_controller_spec.rb b/spec/controllers/backoffice/dossiers_controller_spec.rb index 7023432df..da789d0e4 100644 --- a/spec/controllers/backoffice/dossiers_controller_spec.rb +++ b/spec/controllers/backoffice/dossiers_controller_spec.rb @@ -19,7 +19,7 @@ describe Backoffice::DossiersController, type: :controller do it "le numéro de dossier n'existe pas" do get :show, id: bad_dossier_id - expect(response).to redirect_to('/start/error_dossier') + expect(response).to redirect_to('/backoffice') end end diff --git a/spec/controllers/description_controller_spec.rb b/spec/controllers/description_controller_spec.rb index 894378bd9..1998f2258 100644 --- a/spec/controllers/description_controller_spec.rb +++ b/spec/controllers/description_controller_spec.rb @@ -13,7 +13,7 @@ describe DescriptionController, type: :controller do it 'redirection vers start si mauvais dossier ID' do get :show, dossier_id: bad_dossier_id - expect(response).to redirect_to(controller: :start, action: :error_dossier) + expect(response).to redirect_to(controller: :siret) end end diff --git a/spec/controllers/dossiers_controller_spec.rb b/spec/controllers/dossiers_controller_spec.rb index 9a235e65f..6c2f5d478 100644 --- a/spec/controllers/dossiers_controller_spec.rb +++ b/spec/controllers/dossiers_controller_spec.rb @@ -2,6 +2,7 @@ require 'spec_helper' describe DossiersController, type: :controller do let(:dossier) { create(:dossier, :with_entreprise, :with_procedure) } + let(:procedure) { create(:procedure) } let(:dossier_id) { dossier.id } let(:siret_not_found) { 999_999_999_999 } @@ -15,9 +16,9 @@ describe DossiersController, type: :controller do expect(response).to have_http_status(:success) end - it 'redirection vers start si mauvais dossier ID' do + it 'redirection vers siret si mauvais dossier ID' do get :show, id: siret_not_found - expect(response).to redirect_to('/start/error_dossier') + expect(response).to redirect_to('/siret') end end @@ -36,16 +37,16 @@ describe DossiersController, type: :controller do describe 'professionnel fills form' do context 'when pro_dossier_id is empty' do context 'with valid siret ' do - before do - post :create, siret: siret, pro_dossier_id: '', procedure_id: Procedure.last - end + + subject { post :create, siret: siret, pro_dossier_id: '', procedure_id: Procedure.last } + it 'create a dossier' do - expect { post :create, siret: siret, pro_dossier_id: '' }.to change { Dossier.count }.by(1) + expect { subject }.to change { Dossier.count }.by(1) end it 'creates entreprise' do - expect { post :create, siret: siret, pro_dossier_id: '', procedure_id: Procedure.last }.to change { Entreprise.count }.by(1) + expect { subject }.to change { Entreprise.count }.by(1) end it 'links entreprise to dossier' do @@ -53,35 +54,39 @@ describe DossiersController, type: :controller do end it 'creates etablissement for dossier' do - expect { post :create, siret: siret, pro_dossier_id: '', procedure_id: Procedure.last }.to change { Etablissement.count }.by(1) + expect { subject }.to change { Etablissement.count }.by(1) end it 'links etablissement to dossier' do + subject expect(Etablissement.last.dossier).to eq(Dossier.last) end it 'links etablissement to entreprise' do + subject expect(Etablissement.last.entreprise).to eq(Entreprise.last) end it 'links procedure to dossier' do + subject expect(Dossier.last.procedure).to eq(Procedure.last) end it 'state of dossier is draft' do + subject expect(Dossier.last.state).to eq('draft') end end context 'with non existant siret' do let(:siret_not_found) { '11111111111111' } - subject { post :create, siret: siret_not_found, pro_dossier_id: '' } + subject { post :create, siret: siret_not_found, pro_dossier_id: '', procedure_id: procedure.id } it 'does not create new dossier' do expect { subject }.not_to change { Dossier.count } end it 'redirects to show' do - expect(subject).to redirect_to(controller: :start, action: :error_siret) + expect(subject).to redirect_to(controller: :siret, procedure_id: procedure.id) end end end diff --git a/spec/controllers/recapitulatif_controller_spec.rb b/spec/controllers/recapitulatif_controller_spec.rb index 609ddbf22..1d572121a 100644 --- a/spec/controllers/recapitulatif_controller_spec.rb +++ b/spec/controllers/recapitulatif_controller_spec.rb @@ -11,9 +11,9 @@ RSpec.describe RecapitulatifController, type: :controller do expect(response).to have_http_status(:success) end - it 'redirection vers start si mauvais dossier ID' do + it 'redirection vers siret si mauvais dossier ID' do get :show, dossier_id: bad_dossier_id - expect(response).to redirect_to('/start/error_dossier') + expect(response).to redirect_to('/siret') end end end diff --git a/spec/controllers/start_controller_spec.rb b/spec/controllers/siret_controller_spec.rb similarity index 98% rename from spec/controllers/start_controller_spec.rb rename to spec/controllers/siret_controller_spec.rb index 57a19bf0c..e169a8fd7 100644 --- a/spec/controllers/start_controller_spec.rb +++ b/spec/controllers/siret_controller_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe StartController, type: :controller do +describe SiretController, type: :controller do let!(:procedure) { create(:procedure) } describe 'GET #index' do diff --git a/spec/features/users/start_demande_spec.rb b/spec/features/users/start_demande_spec.rb index c073aab62..1da39fcc2 100644 --- a/spec/features/users/start_demande_spec.rb +++ b/spec/features/users/start_demande_spec.rb @@ -1,13 +1,13 @@ require 'spec_helper' -feature 'user arrive on start page' do +feature 'user arrive on siret page' do let(:procedure) { create(:procedure) } let(:user) { create(:user) } let(:siret) { '42149333900020' } let(:siren) { siret[0...9] } context 'when user is not logged in' do before do - visit start_path(procedure_id: procedure.id) + visit siret_path(procedure_id: procedure.id) end scenario 'he is redirected to login page' do expect(page).to have_css('#login_user') @@ -18,7 +18,7 @@ feature 'user arrive on start page' do page.find_by_id('user_password').set user.password page.click_on 'Se connecter' end - scenario 'he is redirected to start page to enter a siret' do + scenario 'he is redirected to siret page to enter a siret' do expect(page).to have_css('#pro_section') end context 'when enter a siret' do diff --git a/spec/views/start/index.html.haml_spec.rb b/spec/views/siret/index.html.haml_spec.rb similarity index 95% rename from spec/views/start/index.html.haml_spec.rb rename to spec/views/siret/index.html.haml_spec.rb index b4334cbb7..9d27ae043 100644 --- a/spec/views/start/index.html.haml_spec.rb +++ b/spec/views/siret/index.html.haml_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe 'start/index.html.haml', type: :view do +describe 'siret/index.html.haml', type: :view do let(:procedure) { create(:procedure, libelle: 'Demande de subvention') } before do assign(:procedure, procedure)