2024-04-29 00:17:15 +02:00
# frozen_string_literal: true
2023-11-09 15:28:20 +01:00
require 'sidekiq/web'
2024-04-04 12:50:56 +02:00
require 'sidekiq/cron/web'
2023-11-09 15:28:20 +01:00
2015-08-10 11:05:06 +02:00
Rails . application . routes . draw do
2021-02-16 16:14:43 +01:00
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
2020-11-12 16:09:21 +01:00
get '/saml/auth' = > 'saml_idp#new'
post '/saml/auth' = > 'saml_idp#create'
2022-08-18 11:39:43 +02:00
get '/saml/metadata' = > 'saml_idp#show'
2020-11-12 16:09:21 +01:00
2018-07-31 11:48:58 +02:00
#
# Manager
#
2017-12-28 19:44:11 +01:00
namespace :manager do
2021-12-06 06:12:40 +01:00
resources :procedures , only : [ :index , :show , :edit , :update ] do
2018-01-10 17:42:21 +01:00
post 'whitelist' , on : :member
2023-07-21 16:15:25 +02:00
post 'hide_as_template' , on : :member
post 'unhide_as_template' , on : :member
2018-10-09 12:11:13 +02:00
post 'draft' , on : :member
2020-03-26 09:08:52 +01:00
post 'discard' , on : :member
2020-03-26 17:35:50 +01:00
post 'restore' , on : :member
2022-08-10 16:25:50 +02:00
put 'delete_administrateur' , on : :member
2022-07-21 13:23:13 +02:00
post 'add_administrateur_and_instructeur' , on : :member
post 'add_administrateur_with_confirmation' , on : :member
2019-04-17 16:36:57 +02:00
post 'change_piece_justificative_template' , on : :member
2022-10-31 19:32:10 +01:00
patch 'add_tags' , on : :member
2024-01-26 10:30:16 +01:00
patch 'update_template_status' , on : :member
2020-05-18 11:07:51 +02:00
get 'export_mail_brouillons' , on : :member
2022-09-09 11:45:14 +02:00
resources :confirmation_urls , only : :new
2022-09-09 14:48:40 +02:00
resources :administrateur_confirmations , only : [ :new , :create ]
2018-01-10 16:46:12 +01:00
end
2024-09-29 17:11:10 +02:00
resources :procedure_tags , only : [ :index , :show , :new , :create , :edit , :update , :destroy ]
2022-03-30 16:19:14 +02:00
resources :archives , only : [ :index , :show ]
2018-07-02 11:46:04 +02:00
resources :dossiers , only : [ :index , :show ] do
2020-03-25 18:08:32 +01:00
post 'discard' , on : :member
2020-03-26 17:35:50 +01:00
post 'restore' , on : :member
2019-07-29 10:57:21 +02:00
post 'repasser_en_instruction' , on : :member
2018-07-02 11:46:04 +02:00
end
2023-05-25 15:24:36 +02:00
resources :groupe_instructeurs , only : [ :index , :show ]
2018-01-18 10:04:34 +01:00
resources :administrateurs , only : [ :index , :show , :new , :create ] do
post 'reinvite' , on : :member
2019-07-22 15:33:58 +02:00
delete 'delete' , on : :member
2018-01-18 10:04:34 +01:00
end
2017-12-28 19:44:11 +01:00
2020-01-13 14:35:25 +01:00
resources :users , only : [ :index , :show , :edit , :update ] do
2020-01-08 10:50:16 +01:00
delete 'delete' , on : :member
2018-07-17 12:10:56 +02:00
post 'resend_confirmation_instructions' , on : :member
2023-02-02 17:33:05 +01:00
post 'resend_reset_password_instructions' , on : :member
2024-05-31 16:30:22 +02:00
post 'unblock_mails' , on : :member
2019-07-04 12:36:17 +02:00
put 'enable_feature' , on : :member
2020-10-06 16:52:10 +02:00
get 'emails' , on : :member
2020-10-07 10:07:38 +02:00
put 'unblock_email'
2018-07-17 12:10:56 +02:00
end
2023-11-29 19:21:50 +01:00
resources :experts , only : [ :index , :show ]
2021-11-25 14:44:28 +01:00
resources :instructeurs , only : [ :index , :show , :edit , :update ] do
2018-06-14 16:41:10 +02:00
post 'reinvite' , on : :member
2020-01-30 10:48:28 +01:00
delete 'delete' , on : :member
2018-06-14 16:41:10 +02:00
end
2023-10-11 09:35:53 +02:00
if ENV [ 'ADMINS_GROUP_ENABLED' ] == 'enabled' || Rails . env . test? # can be removed if needed when EVERY PARTS of the feature will be merged / from env.example.optional
2023-10-01 12:52:05 +02:00
resources :gestionnaires , only : [ :index , :show , :edit , :update ] do
delete 'delete' , on : :member
end
2023-08-25 22:53:30 +02:00
2023-09-04 12:07:04 +02:00
resources :groupe_gestionnaires , path : 'groupe_administrateurs' , only : [ :index , :show , :new , :create , :edit , :update ] do
post 'add_gestionnaire' , on : :member
2023-08-29 19:08:27 +02:00
delete 'remove_gestionnaire' , on : :member
2023-08-25 22:53:30 +02:00
end
end
2023-11-27 11:19:32 +01:00
resources :dossiers , only : [ :show ] do
get 'transfer_edit' , on : :member
post 'transfer' , on : :member
2023-11-28 09:04:36 +01:00
delete 'transfer_destroy' , on : :member
2023-11-27 11:19:32 +01:00
end
2018-05-31 15:18:06 +02:00
2019-05-17 10:43:50 +02:00
resources :bill_signatures , only : [ :index ]
2023-03-22 09:28:08 +01:00
resources :exports , only : [ :index , :show ]
2018-10-02 16:04:14 +02:00
resources :services , only : [ :index , :show ]
2021-04-13 15:57:22 +02:00
resources :super_admins , only : [ :index , :show , :destroy ]
2021-04-13 15:54:42 +02:00
2021-12-23 11:33:22 +01:00
resources :zones , only : [ :index , :show ]
2021-12-18 17:28:03 +01:00
2022-11-04 10:40:00 +01:00
resources :team_accounts , only : [ :index , :show ]
2023-01-17 17:34:05 +01:00
resources :email_events , only : [ :index , :show ] do
post :generate_dolist_report , on : :collection
end
2023-01-09 17:36:26 +01:00
2022-05-16 12:20:24 +02:00
resources :dubious_procedures , only : [ :index ]
2024-06-28 15:40:13 +02:00
resources :published_procedures , only : [ :index ]
2022-08-16 16:53:41 +02:00
resources :outdated_procedures , only : [ :index ] do
patch :bulk_update , on : :collection
end
2023-01-11 20:24:57 +01:00
resources :safe_mailers , only : [ :index , :edit , :update , :destroy , :new , :create , :show ]
2022-05-16 12:20:24 +02:00
2020-11-06 17:23:54 +01:00
authenticate :super_admin do
2019-07-04 12:36:17 +02:00
mount Flipper :: UI . app ( - > { Flipper . instance } ) = > " /features " , as : :flipper
2018-01-16 16:58:52 +01:00
match " /delayed_job " = > DelayedJobWeb , :anchor = > false , :via = > [ :get , :post ]
2023-10-10 11:57:58 +02:00
mount MaintenanceTasks :: Engine = > " /maintenance_tasks "
2023-11-09 15:28:20 +01:00
mount Sidekiq :: Web = > " /sidekiq "
2018-01-16 16:58:52 +01:00
end
2024-06-04 19:01:06 +02:00
get 'data_exports' = > 'administrateurs#data_exports'
2024-11-04 17:40:45 +01:00
get 'exports/administrateurs/last_half_year' = > 'administrateurs#export_last_half_year'
get 'exports/instructeurs/last_half_year' = > 'instructeurs#export_last_half_year'
2024-11-04 17:55:22 +01:00
get 'exports/administrateurs/with_publiee_procedure' = > 'administrateurs#export_with_publiee_procedure'
get 'exports/instructeurs/currently_active' = > 'instructeurs#export_currently_active'
2024-06-04 19:01:06 +02:00
2022-12-18 11:51:59 +01:00
get 'import_procedure_tags' = > 'procedures#import_data'
post 'import_tags' = > 'procedures#import_tags'
2018-01-16 18:09:01 +01:00
root to : " administrateurs # index "
2017-12-28 19:44:11 +01:00
end
2018-09-25 11:54:15 +02:00
#
# Letter Opener
#
if Rails . env . development?
mount LetterOpenerWeb :: Engine , at : " /letter_opener "
end
2018-07-31 11:48:58 +02:00
#
# Monitoring
#
2020-06-22 15:28:36 +02:00
get " /ping " = > " ping # index "
2016-06-01 15:07:27 +02:00
2018-07-31 11:48:58 +02:00
#
# Authentication
#
2020-11-05 15:09:11 +01:00
devise_for :super_admins , skip : [ :registrations ] , controllers : {
sessions : 'super_admins/sessions' ,
passwords : 'super_admins/passwords'
2020-11-04 20:06:48 +01:00
}
2020-11-04 16:35:15 +01:00
2023-10-03 16:20:13 +02:00
namespace :super_admins do
2023-10-26 14:36:03 +02:00
resources :release_notes
2023-10-03 16:20:13 +02:00
end
2020-11-05 15:09:11 +01:00
get 'super_admins/edit_otp' , to : 'super_admins#edit_otp' , as : 'edit_super_admin_otp'
put 'super_admins/enable_otp' , to : 'super_admins#enable_otp' , as : 'enable_super_admin_otp'
2016-02-23 16:51:24 +01:00
2015-10-23 16:19:55 +02:00
devise_for :users , controllers : {
2018-01-15 19:02:12 +01:00
sessions : 'users/sessions' ,
registrations : 'users/registrations' ,
2018-10-02 15:47:32 +02:00
confirmations : 'users/confirmations' ,
2018-09-19 11:56:05 +02:00
passwords : 'users/passwords'
2018-01-15 19:02:12 +01:00
}
2015-11-16 16:16:08 +01:00
2016-02-15 17:13:16 +01:00
devise_scope :user do
2016-05-26 15:59:50 +02:00
get '/users/no_procedure' = > 'users/sessions#no_procedure'
2018-10-03 11:11:02 +02:00
get 'connexion-par-jeton/:id' = > 'users/sessions#sign_in_by_link' , as : 'sign_in_by_link'
2021-06-15 17:02:59 +02:00
get 'lien-envoye' = > 'users/sessions#link_sent' , as : 'link_sent'
2023-08-29 16:41:45 +02:00
post '/instructeurs/reset-link-sent' = > 'users/sessions#reset_link_sent'
2021-04-22 12:07:35 +02:00
get '/users/password/reset-link-sent' = > 'users/passwords#reset_link_sent'
2024-03-18 10:19:30 +01:00
get 'logout' = > 'users/sessions#logout'
2016-02-15 17:13:16 +01:00
end
2024-12-09 11:23:41 +01:00
post 'password_complexity' = > 'password_complexity#show' , as : 'show_password_complexity'
2024-06-07 10:06:40 +02:00
get 'check_email' = > 'email_checker#show' , as : 'show_email_suggestions'
2021-08-31 18:14:32 +02:00
2022-05-23 15:09:22 +02:00
resources :targeted_user_links , only : [ :show ]
2018-07-31 11:48:58 +02:00
#
# Main routes
#
2015-10-26 16:10:38 +01:00
root 'root#index'
2018-08-10 15:18:57 +02:00
get '/administration' = > 'root#administration'
2015-10-05 16:42:29 +02:00
2016-09-06 11:07:26 +02:00
get 'users' = > 'users#index'
get 'admin' = > 'admin#index'
2018-08-13 14:46:22 +02:00
get '/stats' = > 'stats#index'
get '/stats/download' = > 'stats#download'
2017-03-24 18:04:37 +01:00
2015-12-18 12:01:26 +01:00
namespace :france_connect do
2015-12-24 10:03:06 +01:00
get 'particulier' = > 'particulier#login'
get 'particulier/callback' = > 'particulier#callback'
2024-07-31 17:50:14 +02:00
post 'particulier/send_email_merge_request'
post 'particulier/merge_using_fc_email'
post 'particulier/merge_using_password'
get 'particulier/merge_using_email_link/:email_merge_token' = > 'particulier#merge_using_email_link' , as : :particulier_merge_using_email_link
2024-07-01 16:41:13 +02:00
get 'confirm_email/:token' , to : 'particulier#confirm_email' , as : :confirm_email
2015-12-18 12:01:26 +01:00
end
2015-08-10 11:05:06 +02:00
2021-11-19 10:00:04 +01:00
namespace :agent_connect do
get '' = > 'agent#index'
2021-11-19 10:21:47 +01:00
get 'login' = > 'agent#login'
2021-11-19 15:24:54 +01:00
get 'callback' = > 'agent#callback'
2024-09-16 12:14:46 +02:00
get 'explanation_2fa' = > 'agent#explanation_2fa'
get 'relogin_after_2fa_config' = > 'agent#relogin_after_2fa_config'
get 'logout_from_mcp' = > 'agent#logout_from_mcp'
2021-11-19 10:00:04 +01:00
end
2018-04-03 17:53:14 +02:00
namespace :champs do
2024-03-14 15:13:13 +01:00
post ':dossier_id/:stable_id/repetition' , to : 'repetition#add' , as : :repetition
delete ':dossier_id/:stable_id/repetition' , to : 'repetition#remove'
2024-04-22 10:47:47 +02:00
get ':dossier_id/:stable_id/siret' , to : 'siret#show' , as : :siret
get ':dossier_id/:stable_id/rna' , to : 'rna#show' , as : :rna
delete ':dossier_id/:stable_id/options' , to : 'options#remove' , as : :options
2024-04-15 15:06:05 +02:00
2024-04-22 10:47:47 +02:00
get ':dossier_id/:stable_id/carte/features' , to : 'carte#index' , as : :carte_features
2024-04-15 15:06:05 +02:00
post ':dossier_id/:stable_id/carte/features' , to : 'carte#create'
2024-04-22 10:47:47 +02:00
patch ':dossier_id/:stable_id/carte/features/:id' , to : 'carte#update' , as : :carte_feature
2024-04-15 15:06:05 +02:00
delete ':dossier_id/:stable_id/carte/features/:id' , to : 'carte#destroy'
2024-04-22 10:47:47 +02:00
get ':dossier_id/:stable_id/piece_justificative' , to : 'piece_justificative#show' , as : :piece_justificative
2024-04-15 15:06:05 +02:00
put ':dossier_id/:stable_id/piece_justificative' , to : 'piece_justificative#update'
2024-04-22 10:47:47 +02:00
get ':dossier_id/:stable_id/piece_justificative/template' , to : 'piece_justificative#template' , as : :piece_justificative_template
2018-04-03 17:53:14 +02:00
end
2020-04-08 17:53:04 +02:00
resources :attachments , only : [ :show , :destroy ]
2021-04-29 09:32:25 +02:00
resources :recherche , only : [ :index ]
2019-05-21 14:21:55 +02:00
2023-01-23 17:41:02 +01:00
get " patron " = > " root # patron " if Rails . env . development? || Rails . env . test?
2018-11-07 16:54:18 +01:00
get " suivi " = > " root # suivi "
2021-05-12 16:30:35 +02:00
post " save_locale " = > " root # save_locale "
2018-07-31 11:48:58 +02:00
2024-07-31 16:20:49 +02:00
get " contact " , to : " contact # index "
post " contact " , to : " contact # create "
2018-08-29 21:26:22 +02:00
2024-07-31 16:20:49 +02:00
get " contact-admin " , to : " contact # admin "
2018-11-28 15:19:12 +01:00
2023-03-21 12:44:04 +01:00
get " mentions-legales " , to : " static_pages # legal_notice "
2023-03-21 11:11:12 +01:00
get " declaration-accessibilite " , to : " static_pages # accessibility_statement "
2023-03-15 13:15:37 +01:00
2023-11-09 15:46:02 +01:00
get " carte " , to : " carte # show "
2023-01-11 17:31:31 +01:00
post " webhooks/sendinblue " , to : " webhook # sendinblue "
2018-08-29 21:26:22 +02:00
post " webhooks/helpscout " , to : " webhook # helpscout "
2022-11-03 11:31:18 +01:00
post " webhooks/helpscout_support_dev " , to : " webhook # helpscout_support_dev "
2018-08-29 21:26:22 +02:00
match " webhooks/helpscout " , to : lambda { | _ | [ 204 , { } , nil ] } , via : :head
2018-08-29 11:44:12 +02:00
2022-12-29 16:11:59 +01:00
get '/preremplir/:path' , to : 'prefill_descriptions#edit' , as : :preremplir
2023-01-23 11:31:06 +01:00
get '/preremplir/:path/schema' , to : 'api/public/v1/json_description_procedures#show' , as : :prefill_json_description , defaults : { format : :json }
2022-12-19 12:32:09 +01:00
resources :procedures , only : [ ] , param : :path do
member do
resource :prefill_description , only : :update
2023-01-18 09:47:22 +01:00
resources :prefill_type_de_champs , only : :show
2022-12-19 12:32:09 +01:00
end
end
2023-10-03 18:14:20 +02:00
namespace :data_sources do
get :adresse , to : 'adresse#search' , as : :data_source_adresse
2023-10-13 16:06:26 +02:00
get :commune , to : 'commune#search' , as : :data_source_commune
2024-05-06 18:09:44 +02:00
get :education , to : 'education#search' , as : :data_source_education
2023-10-13 16:06:26 +02:00
2023-09-06 17:16:02 +02:00
get :search_domaine_fonct , to : 'chorus#search_domaine_fonct' , as : :search_domaine_fonct
get :search_centre_couts , to : 'chorus#search_centre_couts' , as : :search_centre_couts
get :search_ref_programmation , to : 'chorus#search_ref_programmation' , as : :search_ref_programmation
2023-10-03 18:14:20 +02:00
end
2018-07-31 11:48:58 +02:00
#
# Deprecated UI
#
2015-09-23 19:20:03 +02:00
namespace :users do
2018-11-01 13:00:35 +01:00
resources :dossiers , only : [ ] do
2018-10-10 20:01:02 +02:00
post '/carte/zones' = > 'carte#zones'
2015-09-28 18:55:16 +02:00
get '/carte' = > 'carte#show'
2015-11-25 17:05:14 +01:00
post '/carte' = > 'carte#save'
2020-03-19 14:47:09 +01:00
post '/repousser-expiration' = > 'dossiers#extend_conservation'
2024-07-23 15:06:23 +02:00
post '/repousser-expiration-and-restore' = > 'dossiers#extend_conservation_and_restore'
2015-09-23 19:20:03 +02:00
end
2018-07-03 13:35:32 +02:00
# Redirection of legacy "/users/dossiers" route to "/dossiers"
get 'dossiers' , to : redirect ( '/dossiers' )
2018-10-02 14:50:53 +02:00
get 'dossiers/:id/recapitulatif' , to : redirect ( '/dossiers/%{id}' )
2018-11-13 16:18:52 +01:00
get 'dossiers/invites/:id' , to : redirect ( path : '/invites/%{id}' )
2015-08-10 11:05:06 +02:00
2019-08-07 15:52:38 +02:00
get 'activate' = > '/users/activate#new'
patch 'activate' = > '/users/activate#create'
2024-07-10 10:57:26 +02:00
get 'confirm_email/:token' = > '/users/activate#confirm_email' , as : :confirm_email
2018-04-27 12:29:01 +02:00
end
2019-09-24 16:38:58 +02:00
# order matters: we don't want those routes to match /admin/procedures/:id
2021-11-25 16:26:55 +01:00
get 'admin/procedures/new' = > 'administrateurs/procedures#new' , as : :new_admin_procedure
2019-09-24 16:38:58 +02:00
2015-10-23 16:19:55 +02:00
namespace :admin do
2018-01-11 14:18:17 +01:00
get 'activate' = > '/administrateurs/activate#new'
patch 'activate' = > '/administrateurs/activate#create'
2020-09-17 13:53:48 +02:00
get 'procedures/archived' , to : redirect ( '/admin/procedures?statut=archivees' )
get 'procedures/draft' , to : redirect ( '/admin/procedures?statut=brouillons' )
2016-05-20 15:36:38 +02:00
2019-08-06 11:46:55 +02:00
namespace :assigns do
2018-08-29 22:11:38 +02:00
get 'show' # delete after fixed tests admin/instructeurs/show_spec without this line
2016-05-24 16:39:39 +02:00
end
2015-10-23 16:19:55 +02:00
end
2015-09-22 10:15:12 +02:00
2020-07-14 18:25:31 +02:00
resources :invites , only : [ :show , :destroy ] do
2018-11-13 16:18:52 +01:00
collection do
post 'dossier/:dossier_id' , to : 'invites#create' , as : :dossier
end
2016-09-13 12:17:56 +02:00
end
2018-07-31 11:48:58 +02:00
#
# API
#
2022-09-13 11:38:48 +02:00
get 'graphql/schema' = > redirect ( '/graphql/schema/index.html' )
2022-11-15 10:02:30 +01:00
get 'graphql' , to : " graphql # playground "
2018-11-19 21:18:39 +01:00
2015-12-21 17:50:34 +01:00
namespace :api do
namespace :v1 do
2016-01-20 15:48:46 +01:00
resources :procedures , only : [ :index , :show ] do
2016-01-25 16:08:10 +01:00
resources :dossiers , only : [ :index , :show ]
2016-01-20 15:48:46 +01:00
end
2015-12-21 17:50:34 +01:00
end
2018-11-19 21:18:17 +01:00
namespace :v2 do
post :graphql , to : " graphql # execute "
2020-10-01 12:41:57 +02:00
get 'dossiers/pdf/:id' , format : :pdf , to : " dossiers # pdf " , as : :dossier_pdf
get 'dossiers/geojson/:id' , to : " dossiers # geojson " , as : :dossier_geojson
2018-11-19 21:18:17 +01:00
end
2021-08-31 12:49:35 +02:00
resources :pays , only : :index
2022-12-19 12:32:09 +01:00
namespace :public do
namespace :v1 do
2023-01-03 14:46:10 +01:00
resources :demarches , only : [ ] do
member do
2023-02-23 21:55:03 +01:00
resources :dossiers , only : [ :create , :index ]
2023-01-20 14:28:02 +01:00
resources :stats , only : :index
2023-01-03 14:46:10 +01:00
end
end
2022-12-19 12:32:09 +01:00
end
end
2015-12-21 17:50:34 +01:00
end
2016-02-22 19:42:47 +01:00
2018-07-31 11:48:58 +02:00
#
# User
#
2017-06-14 14:42:09 +02:00
2019-03-25 10:53:45 +01:00
scope module : 'users' do
2021-06-02 12:48:24 +02:00
namespace :statistiques do
get '/:path' , action : 'statistiques'
end
2018-11-01 13:00:35 +01:00
namespace :commencer do
2022-04-25 14:57:15 +02:00
get '/test/:path/dossier_vide' , action : :dossier_vide_pdf_test , as : :dossier_vide_test
2018-11-01 13:00:35 +01:00
get '/test/:path' , action : 'commencer_test' , as : :test
get '/:path' , action : 'commencer'
2020-02-27 17:39:19 +01:00
get '/:path/dossier_vide' , action : 'dossier_vide_pdf' , as : :dossier_vide
2019-01-16 11:57:58 +01:00
get '/:path/sign_in' , action : 'sign_in' , as : :sign_in
get '/:path/sign_up' , action : 'sign_up' , as : :sign_up
2019-04-02 15:03:35 +02:00
get '/:path/france_connect' , action : 'france_connect' , as : :france_connect
2018-11-01 13:00:35 +01:00
end
2023-04-03 20:00:52 +02:00
resources :dossiers , only : [ :index , :show , :destroy , :new ] do
2018-02-08 17:13:15 +01:00
member do
get 'identite'
2024-04-12 17:59:50 +02:00
patch 'identite'
2018-02-08 17:13:15 +01:00
patch 'update_identite'
2022-11-08 16:26:03 +01:00
post 'clone'
2018-10-04 09:43:19 +02:00
get 'siret'
2018-10-15 18:41:53 +02:00
post 'siret' , to : 'dossiers#update_siret'
2018-10-15 12:25:25 +02:00
get 'etablissement'
2018-09-06 09:09:23 +02:00
get 'brouillon'
2023-03-21 18:24:39 +01:00
patch 'brouillon' , to : 'dossiers#update'
2022-10-11 12:21:06 +02:00
post 'brouillon' , to : 'dossiers#submit_brouillon'
2018-09-05 18:23:10 +02:00
get 'modifier' , to : 'dossiers#modifier'
2023-03-21 18:24:39 +01:00
post 'modifier' , to : 'dossiers#submit_en_construction'
2024-04-22 10:47:47 +02:00
get 'champs/:stable_id' , to : 'dossiers#champ' , as : :champ
2018-02-27 09:49:58 +01:00
get 'merci'
2018-08-29 16:57:01 +02:00
get 'demande'
2018-09-05 13:56:12 +02:00
get 'messagerie'
post 'commentaire' = > 'dossiers#create_commentaire'
2022-01-05 10:41:18 +01:00
patch 'restore' , to : 'dossiers#restore'
2018-07-17 11:26:41 +02:00
get 'attestation'
2021-09-07 10:37:42 +02:00
get 'transferer' , to : 'dossiers#transferer'
2022-05-04 08:57:14 +02:00
get 'papertrail' , format : :pdf
2024-03-25 14:08:46 +01:00
get 'set_accuse_lecture_agreement_at'
2018-02-08 17:13:15 +01:00
end
2018-07-17 11:27:10 +02:00
collection do
2021-09-07 10:37:42 +02:00
resources :transfers , only : [ :create , :update , :destroy ]
2018-07-17 11:27:10 +02:00
end
2017-06-29 14:18:59 +02:00
end
2021-09-07 10:37:42 +02:00
2018-08-08 17:37:41 +02:00
resource :feedback , only : [ :create ]
2018-09-13 16:13:54 +02:00
get 'demarches' = > 'demarches#index'
2024-07-22 11:12:38 +02:00
get 'deleted_dossiers' = > 'dossiers#deleted_dossiers'
2019-07-02 18:15:03 +02:00
get 'profil' = > 'profil#show'
2019-07-08 10:40:50 +02:00
patch 'update_email' = > 'profil#update_email'
2021-09-20 13:14:03 +02:00
post 'transfer_all_dossiers' = > 'profil#transfer_all_dossiers'
2021-10-26 13:22:51 +02:00
post 'accept_merge' = > 'profil#accept_merge'
post 'refuse_merge' = > 'profil#refuse_merge'
2022-11-07 17:18:42 +01:00
delete 'france_connect_information' = > 'profil#destroy_fci'
2024-03-18 19:31:57 +01:00
patch 'preferred_domain' , to : 'profil#preferred_domain'
2024-02-15 11:21:31 +01:00
get 'fermeture/:path' , to : 'commencer#closing_details' , as : :closing_details
2017-06-29 14:18:59 +02:00
end
2023-08-01 10:58:41 +02:00
get 'procedures/:id/logo' , to : 'procedures#logo' , as : :procedure_logo
2021-02-09 10:24:13 +01:00
#
# Expert
#
scope module : 'experts' , as : 'expert' do
get 'avis' , to : 'avis#index' , as : 'all_avis'
2021-02-25 10:10:42 +01:00
resources :procedures , only : [ ] , param : :procedure_id do
2021-02-09 10:24:13 +01:00
member do
2024-03-15 17:42:58 +01:00
get 'notification_settings' , to : 'avis#notification_settings'
patch 'update_notification_settings' , to : 'avis#update_notification_settings'
2021-02-09 10:24:13 +01:00
resources :avis , only : [ :show , :update ] do
get '' , action : 'procedure' , on : :collection , as : :procedure
member do
get 'instruction'
2023-03-14 16:50:25 +01:00
get 'avis_list'
2023-03-16 10:46:10 +01:00
get 'avis_new'
2021-02-09 10:24:13 +01:00
get 'messagerie'
post 'commentaire' = > 'avis#create_commentaire'
post 'avis' = > 'avis#create_avis'
get 'bilans_bdf'
2021-09-27 15:07:50 +02:00
get 'telecharger_pjs' = > 'avis#telecharger_pjs'
2021-02-09 10:24:13 +01:00
2021-06-15 18:44:33 +02:00
get 'sign_up' = > 'avis#sign_up'
post 'sign_up' = > 'avis#update_expert'
# This redirections are ephemeral, to ensure that emails sent to experts before are still valid
# TODO : remove these lines after September, 2021
get 'sign_up/email/:email' = > 'avis#sign_up' , constraints : { email : / .* / } , as : 'sign_up_legacy'
post 'sign_up/email/:email' = > 'avis#update_expert' , constraints : { email : / .* / } , as : 'update_expert_legacy'
2021-02-09 10:24:13 +01:00
end
end
end
end
end
2018-07-31 11:48:58 +02:00
#
2019-08-13 13:56:46 +02:00
# Instructeur
2018-07-31 11:48:58 +02:00
#
2019-08-06 11:02:54 +02:00
scope module : 'instructeurs' , as : 'instructeur' do
2024-07-18 17:27:19 +02:00
resources :procedures , only : [ ] do
resources :export_templates , only : [ :new , :create , :edit , :update , :destroy ] do
collection do
2024-09-24 18:06:59 +02:00
put 'preview'
2024-07-18 17:27:19 +02:00
end
end
2024-11-20 16:33:57 +01:00
collection do
get 'order_positions'
patch 'update_order_positions'
end
2024-07-18 17:27:19 +02:00
end
2024-10-25 13:51:12 +02:00
resources :procedure_presentation , only : [ :update ] do
member do
get 'refresh_column_filter'
end
end
2024-10-25 10:27:46 +02:00
2024-11-20 11:34:40 +01:00
resources :procedures , only : [ :index ] , param : :procedure_id do
2017-07-11 16:09:03 +02:00
member do
2024-11-20 11:34:40 +01:00
#
# nested navigation, all those route are hit during an instructeur instruction navigation context
# must keep track of last view statut page
#
constraints statut : / a-suivre|suivis|traites|tous|supprimes|expirant|archives / do
get :show , path : " (:statut) " , defaults : { statut : 'a-suivre' } # optional because some url may still live on with /procedure/:id
resources :dossiers , only : [ :show , :destroy ] , param : :dossier_id , path : " (:statut)/dossiers " , defaults : { statut : 'a-suivre' } do
member do
resources :commentaires , only : [ :destroy ]
post 'repousser-expiration' = > 'dossiers#extend_conservation'
post 'repousser-expiration-and-restore' = > 'dossiers#extend_conservation_and_restore'
post 'dossier_labels' = > 'dossiers#dossier_labels'
get 'messagerie'
get 'annotations-privees' = > 'dossiers#annotations_privees'
get 'avis'
get 'avis_new'
get 'personnes-impliquees' = > 'dossiers#personnes_impliquees'
patch 'follow'
patch 'unfollow'
patch 'archive'
patch 'unarchive'
patch 'restore'
post 'commentaire' = > 'dossiers#create_commentaire'
post 'passer-en-instruction' = > 'dossiers#passer_en_instruction'
post 'repasser-en-construction' = > 'dossiers#repasser_en_construction'
post 'repasser-en-instruction' = > 'dossiers#repasser_en_instruction'
post 'terminer'
post 'pending_correction'
post 'send-to-instructeurs' = > 'dossiers#send_to_instructeurs'
post 'avis' = > 'dossiers#create_avis'
get 'reaffectation'
get 'pieces_jointes'
post 'reaffecter'
end
end
resources :avis , only : [ ] , path : " (:statut)/dossiers " , defaults : { statut : 'a-suivre' } do
member do
patch 'revoquer'
get 'remind'
end
end
resources :batch_operations , only : [ :create ] , path : " (:statut)/dossiers " , defaults : { statut : 'a-suivre' }
end
#
# not nested navigation
#
resources :dossiers , only : [ ] , param : :dossier_id do
member do
get 'telecharger_pjs' = > 'dossiers#telecharger_pjs'
get 'print' = > 'dossiers#print'
patch 'annotations' = > 'dossiers#update_annotations'
get 'annotations/:stable_id' , to : 'dossiers#annotation' , as : :annotation
get 'geo_data'
get 'apercu_attestation'
get 'bilans_bdf'
end
end
2022-07-04 16:13:15 +02:00
2024-11-20 11:35:25 +01:00
resources :archives , only : [ ] do
collection do
get 'list' = > " archives # index "
post 'create' = > " archives # create "
end
end
2019-10-25 09:26:31 +02:00
resources :groupes , only : [ :index , :show ] , controller : 'groupe_instructeurs' do
2023-08-12 11:13:08 +02:00
resource :contact_information
2019-10-25 09:26:31 +02:00
member do
post 'add_instructeur'
2019-10-25 10:17:39 +02:00
delete 'remove_instructeur'
2023-09-21 13:51:04 +02:00
post 'add_signature'
2023-09-21 16:11:11 +02:00
get 'preview_attestation'
2019-10-25 09:26:31 +02:00
end
end
2019-10-24 21:52:05 +02:00
2024-11-25 15:59:32 +01:00
get 'apercu'
2019-10-02 15:51:37 +02:00
get 'download_export'
2022-05-11 16:11:34 +02:00
post 'download_export'
2023-12-19 11:10:03 +01:00
get 'polling_last_export'
2019-07-30 14:37:00 +02:00
get 'stats'
2023-09-11 16:36:55 +02:00
get 'exports'
2024-11-21 13:30:44 +01:00
get 'export_templates'
2019-03-13 17:37:07 +01:00
get 'email_notifications'
2022-11-29 09:43:43 +01:00
get 'administrateurs'
2019-03-13 17:37:07 +01:00
patch 'update_email_notifications'
2020-03-20 17:59:16 +01:00
get 'deleted_dossiers'
2021-07-22 14:33:02 +02:00
get 'email_usagers'
post 'create_multiple_commentaire'
2017-06-29 15:31:29 +02:00
end
end
end
2023-10-11 09:35:53 +02:00
if ENV [ 'ADMINS_GROUP_ENABLED' ] == 'enabled' || Rails . env . test? # can be removed if needed when EVERY PARTS of the feature will be merged / from env.example.optional
2023-08-25 22:53:30 +02:00
#
2023-09-04 12:07:04 +02:00
# Gestionnaire
2023-08-25 22:53:30 +02:00
#
2023-09-04 12:07:04 +02:00
scope module : 'gestionnaires' , as : 'gestionnaire' do
2023-09-28 17:45:39 +02:00
resources :groupe_gestionnaires , path : 'groupes' , only : [ :index , :show , :create , :edit , :update , :destroy ] do
resources :gestionnaires , controller : 'groupe_gestionnaire_gestionnaires' , only : [ :index , :create , :destroy ]
2023-12-06 14:41:32 +01:00
resources :administrateurs , controller : 'groupe_gestionnaire_administrateurs' , only : [ :index , :create , :destroy ] do
delete :remove , on : :member
end
2023-10-01 12:52:05 +02:00
resources :children , controller : 'groupe_gestionnaire_children' , only : [ :index , :create , :destroy ]
2023-12-10 18:25:58 +01:00
resources :commentaires , controller : 'groupe_gestionnaire_commentaires' , only : [ :index , :show , :create , :destroy ] do
collection do
get 'parent_groupe_gestionnaire'
post 'create_parent_groupe_gestionnaire'
end
end
2023-12-10 18:25:58 +01:00
member do
get :tree_structure , path : 'arborescence'
end
2023-09-28 17:45:39 +02:00
end
2023-08-25 22:53:30 +02:00
end
2023-10-26 17:29:34 +02:00
namespace :gestionnaires do
get 'activate' = > '/gestionnaires/activate#new'
patch 'activate' = > '/gestionnaires/activate#create'
end
2023-08-25 22:53:30 +02:00
end
2018-07-31 11:48:58 +02:00
#
# Administrateur
#
2021-11-25 16:26:55 +01:00
scope module : 'administrateurs' , path : 'admin' , as : 'admin' do
2021-09-01 00:08:51 +02:00
resources :procedures do
2022-06-23 13:51:58 +02:00
resources :archives , only : [ :index , :create ]
2022-07-04 16:13:15 +02:00
resources :exports , only : [ ] do
collection do
get 'download'
post 'download'
end
end
2021-08-31 23:44:23 +02:00
collection do
get 'new_from_existing'
2022-07-22 15:40:22 +02:00
post 'search'
2022-12-20 09:44:58 +01:00
get 'all' if Rails . application . config . ds_zonage_enabled
get 'administrateurs' if Rails . application . config . ds_zonage_enabled
2021-08-31 23:44:23 +02:00
end
2018-04-13 16:56:00 +02:00
member do
2023-01-06 17:53:20 +01:00
post 'detail'
2018-04-13 16:56:00 +02:00
get 'apercu'
2018-11-14 16:28:02 +01:00
get 'champs'
2022-09-26 19:02:39 +02:00
get 'zones'
2018-11-14 16:28:02 +01:00
get 'annotations'
2022-03-16 16:23:53 +01:00
get 'modifications'
2020-07-07 12:03:32 +02:00
get 'monavis'
patch 'update_monavis'
2024-03-19 17:26:57 +01:00
get 'accuse_lecture'
patch 'update_accuse_lecture'
2020-07-07 12:03:32 +02:00
get 'jeton'
patch 'update_jeton'
2020-09-30 18:22:06 +02:00
put :allow_expert_review
2023-03-23 17:14:33 +01:00
put :allow_expert_messaging
2021-04-16 11:11:50 +02:00
put :experts_require_administrateur_invitation
2022-05-10 13:59:37 +02:00
put :restore
2018-04-13 16:56:00 +02:00
end
2019-02-06 18:19:27 +01:00
2021-09-15 11:10:28 +02:00
get :api_particulier , controller : 'jeton_particulier'
resource 'api_particulier' , only : [ ] do
2021-09-15 10:53:09 +02:00
resource 'jeton' , only : [ :show , :update ] , controller : 'jeton_particulier'
2021-09-13 15:59:58 +02:00
resource 'sources' , only : [ :show , :update ] , controller : 'sources_particulier'
2021-09-15 11:10:28 +02:00
end
2022-07-04 11:27:39 +02:00
resources :conditions , only : [ :update , :destroy ] , param : :stable_id do
patch :add_row , on : :member
patch :change_targeted_champ , on : :member
delete :delete_row , on : :member
end
2023-10-13 11:31:41 +02:00
resources :routing_rules , only : [ :update , :destroy ] , param : :groupe_instructeur_id do
patch :add_row , on : :member
patch :change_targeted_champ , on : :member
delete :delete_row , on : :member
end
2024-06-05 17:25:10 +02:00
resource :ineligibilite_rules , only : [ :edit , :update , :destroy ] , param : :revision_id do
patch :change_targeted_champ , on : :member
patch :update_all_rows , on : :member
patch :add_row , on : :member
delete :delete_row , on : :member
patch :change
end
2023-10-13 11:31:41 +02:00
patch :update_defaut_groupe_instructeur , controller : 'routing_rules' , as : :update_defaut_groupe_instructeur
2023-03-24 10:27:32 +01:00
2021-09-01 00:20:32 +02:00
put 'clone'
2021-09-01 00:25:00 +02:00
put 'archive'
2020-09-08 12:35:44 +02:00
get 'publication' = > 'procedures#publication' , as : :publication
2024-03-14 17:17:47 +01:00
get 'check_path' = > 'procedures#check_path' , as : :check_path
2020-09-08 12:35:44 +02:00
put 'publish' = > 'procedures#publish' , as : :publish
2022-07-06 12:37:08 +02:00
put 'reset_draft' = > 'procedures#reset_draft' , as : :reset_draft
2023-11-06 17:46:22 +01:00
put 'publish_revision' = > 'procedures#publish_revision' , as : :publish_revision
2020-09-29 10:52:13 +02:00
get 'transfert' = > 'procedures#transfert' , as : :transfert
2022-05-27 15:45:03 +02:00
get 'close' = > 'procedures#close' , as : :close
2024-02-15 11:09:00 +01:00
get 'closing_notification' = > 'procedures#closing_notification' , as : :closing_notification
post 'notify_after_closing' = > 'procedures#notify_after_closing' , as : :notify_after_closing
2023-11-06 17:46:22 +01:00
get 'confirmation' = > 'procedures#confirmation' , as : :confirmation
2020-09-08 12:35:44 +02:00
post 'transfer' = > 'procedures#transfer' , as : :transfer
2022-11-02 10:03:10 +01:00
resources :mail_templates , only : [ :edit , :update , :show ]
2020-08-25 11:40:24 +02:00
2020-01-06 17:09:08 +01:00
resources :groupe_instructeurs , only : [ :index , :show , :create , :update , :destroy ] do
2023-04-24 15:47:46 +02:00
patch 'update_state' = > 'groupe_instructeurs#update_state'
2019-10-10 19:36:56 +02:00
member do
post 'add_instructeur'
2019-10-09 18:23:29 +02:00
delete 'remove_instructeur'
2020-01-07 17:39:50 +01:00
get 'reaffecter_dossiers'
post 'reaffecter'
2023-09-19 17:02:41 +02:00
post 'add_signature'
2023-09-20 17:37:14 +02:00
get 'preview_attestation'
2019-10-10 19:36:56 +02:00
end
2019-10-17 10:57:58 +02:00
collection do
2023-04-26 17:31:05 +02:00
get 'options'
2023-04-26 17:31:49 +02:00
get 'ajout'
post 'ajout' = > 'groupe_instructeurs#create'
2023-04-27 10:10:57 +02:00
patch 'wizard'
2023-04-26 17:33:14 +02:00
get 'simple_routing'
post 'create_simple_routing'
delete 'destroy_all_groups_but_defaut'
2021-09-15 10:37:19 +02:00
patch 'update_instructeurs_self_management_enabled'
2021-06-09 17:51:49 +02:00
post 'import'
2021-10-04 16:02:37 +02:00
get 'export_groupe_instructeurs'
2019-10-17 10:57:58 +02:00
end
2019-10-10 19:36:56 +02:00
end
2019-10-17 15:13:50 +02:00
2019-04-12 10:43:51 +02:00
resources :administrateurs , controller : 'procedure_administrateurs' , only : [ :index , :create , :destroy ]
2021-04-06 14:25:41 +02:00
resources :experts , controller : 'experts_procedures' , only : [ :index , :create , :update , :destroy ]
2021-04-06 13:18:51 +02:00
2022-07-05 11:27:54 +02:00
resources :types_de_champ , only : [ :create , :update , :destroy ] , param : :stable_id do
2019-03-20 14:27:30 +01:00
member do
2024-01-03 10:30:29 +01:00
patch :move_and_morph
2022-06-01 15:23:18 +02:00
patch :move_up
patch :move_down
2022-08-11 14:01:26 +02:00
put :piece_justificative_template
2023-12-19 09:51:49 +01:00
put :notice_explicative
2019-03-20 14:27:30 +01:00
end
end
2019-03-14 14:58:01 +01:00
2020-08-06 16:32:51 +02:00
resources :mail_templates , only : [ :index ] do
2019-03-14 14:58:01 +01:00
get 'preview' , on : :member
end
2020-07-29 12:11:30 +02:00
2024-10-29 15:39:58 +01:00
resources :labels , controller : 'labels'
2024-10-16 14:31:08 +02:00
2022-11-09 12:09:24 +01:00
resource :attestation_template , only : [ :show , :edit , :update , :create ] do
2020-07-29 12:11:30 +02:00
get 'preview' , on : :member
end
2023-10-20 16:57:20 +02:00
resource :chorus , only : [ :edit , :update ] do
get 'add_champ_engagement_juridique'
end
2023-11-14 17:46:52 +01:00
2024-05-31 10:03:23 +02:00
resource :attestation_template_v2 , only : [ :show , :edit , :update , :create ] do
post :reset
end
2023-11-14 17:46:52 +01:00
2022-02-04 14:40:16 +01:00
resource :dossier_submitted_message , only : [ :edit , :update , :create ]
2020-07-29 12:11:30 +02:00
# ADDED TO ACCESS IT FROM THE IFRAME
get 'attestation_template/preview' = > 'attestation_templates#preview'
2023-05-25 19:09:23 +02:00
resource :sva_svr , only : [ :show , :edit , :update ] , controller : 'sva_svr'
2018-04-13 16:56:00 +02:00
end
2018-04-19 16:15:44 +02:00
2023-10-09 19:18:38 +02:00
get 'mon-groupe' = > 'groupe_gestionnaire#show' , as : :groupe_gestionnaire
get 'mon-groupe/administrateurs' = > 'groupe_gestionnaire#administrateurs' , as : :groupe_gestionnaire_administrateurs
get 'mon-groupe/gestionnaires' = > 'groupe_gestionnaire#gestionnaires' , as : :groupe_gestionnaire_gestionnaires
2023-10-24 17:45:20 +02:00
get 'mon-groupe/commentaires' = > 'groupe_gestionnaire#commentaires' , as : :groupe_gestionnaire_commentaires
post 'mon-groupe/create_commentaire' = > 'groupe_gestionnaire#create_commentaire' , as : :groupe_gestionnaire_create_commentaire
2023-10-09 19:18:38 +02:00
2018-04-23 15:32:27 +02:00
resources :services , except : [ :show ] do
2018-04-20 12:03:02 +02:00
collection do
patch 'add_to_procedure'
2024-11-04 12:47:42 +01:00
get ':procedure_id/prefill' = > :prefill , as : :prefill
2018-04-20 12:03:02 +02:00
end
end
2024-01-25 11:13:47 +01:00
2024-01-26 17:11:00 +01:00
resources :api_tokens , only : [ :create , :destroy , :edit , :update ] do
2024-01-30 09:57:43 +01:00
member do
delete 'remove_procedure'
end
2024-01-25 11:13:47 +01:00
collection do
get :nom
get :autorisations
get :securite
end
end
2018-04-13 16:56:00 +02:00
end
2023-10-04 14:57:32 +02:00
resources :release_notes , only : [ :index ]
2024-04-22 16:44:27 +02:00
resources :faq , only : [ :index ]
2024-04-22 16:42:12 +02:00
get '/faq/:category/:slug' , to : 'faq#show' , as : :faq
2024-03-28 09:45:05 +01:00
get '/404' , to : 'errors#not_found'
2024-04-09 00:00:31 +02:00
get '/422' , to : 'errors#unprocessable_entity'
2024-04-08 23:26:20 +02:00
get '/500' , to : 'errors#internal_server_error'
2024-04-08 23:36:18 +02:00
get '/:status' , to : 'errors#show' , constraints : { status : / [4-5][0-5] \ d / }
2024-03-28 09:45:05 +01:00
2020-01-14 18:46:07 +01:00
if Rails . env . test?
scope 'test/api_geo' do
get 'regions' = > 'api_geo_test#regions'
get 'communes' = > 'api_geo_test#communes'
get 'departements' = > 'api_geo_test#departements'
2021-10-26 16:21:47 +02:00
get 'departements/:code/communes' = > 'api_geo_test#communes'
2020-01-14 18:46:07 +01:00
end
end
2023-12-19 16:31:57 +01:00
resource :recovery , only : [ ] , path : :recuperation_de_dossiers do
collection do
get :nature
post :nature , action : :post_nature
get :identification
post :identification , action : :post_identification
get :selection
post :selection , action : :post_selection
get :terminee
get :support
end
root action : :nature
end
2018-07-31 11:48:58 +02:00
#
2018-01-15 10:02:10 +01:00
# Legacy routes
2018-07-31 11:48:58 +02:00
#
2020-09-24 09:57:43 +02:00
get 'demandes/new' = > redirect ( DEMANDE_INSCRIPTION_ADMIN_PAGE_URL )
2018-07-31 11:48:58 +02:00
2018-01-15 10:02:10 +01:00
get 'backoffice' = > redirect ( '/procedures' )
get 'backoffice/sign_in' = > redirect ( '/users/sign_in' )
2018-01-16 16:08:20 +01:00
get 'backoffice/dossiers/procedure/:procedure_id' = > redirect ( '/procedures/%{procedure_id}' )
2015-08-10 11:05:06 +02:00
end