demarches-normaliennes/config/routes.rb

820 lines
28 KiB
Ruby
Raw Normal View History

# 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'
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
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
post 'draft', on: :member
2020-03-26 09:08:52 +01:00
post 'discard', on: :member
post 'restore', on: :member
put 'delete_administrateur', on: :member
post 'add_administrateur_and_instructeur', on: :member
post 'add_administrateur_with_confirmation', on: :member
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
get 'export_mail_brouillons', on: :member
resources :confirmation_urls, only: :new
resources :administrateur_confirmations, only: [:new, :create]
end
resources :procedure_tags, only: [:index, :show, :new, :create, :edit, :update, :destroy]
resources :archives, only: [:index, :show]
resources :dossiers, only: [:index, :show] do
post 'discard', on: :member
post 'restore', on: :member
post 'repasser_en_instruction', on: :member
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
delete 'delete', on: :member
2018-01-18 10:04:34 +01:00
end
2017-12-28 19:44:11 +01:00
resources :users, only: [:index, :show, :edit, :update] do
2020-01-08 10:50:16 +01:00
delete 'delete', on: :member
post 'resend_confirmation_instructions', on: :member
post 'resend_reset_password_instructions', on: :member
post 'unblock_mails', on: :member
2019-07-04 12:36:17 +02:00
put 'enable_feature', on: :member
get 'emails', on: :member
put 'unblock_email'
end
2023-11-29 19:21:50 +01:00
resources :experts, only: [:index, :show]
resources :instructeurs, only: [:index, :show, :edit, :update] do
2018-06-14 16:41:10 +02:00
post 'reinvite', on: :member
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
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
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
end
2018-05-31 15:18:06 +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
resources :zones, only: [:index, :show]
2021-12-18 17:28:03 +01:00
resources :team_accounts, only: [:index, :show]
resources :email_events, only: [:index, :show] do
post :generate_dolist_report, on: :collection
end
resources :dubious_procedures, only: [:index]
resources :published_procedures, only: [:index]
resources :outdated_procedures, only: [:index] do
patch :bulk_update, on: :collection
end
resources :safe_mailers, only: [:index, :edit, :update, :destroy, :new, :create, :show]
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
get 'data_exports' => 'administrateurs#data_exports'
get 'exports/administrateurs/last_half_year' => 'administrateurs#export_last_half_year'
get 'exports/instructeurs/last_half_year' => 'instructeurs#export_last_half_year'
get 'exports/administrateurs/with_publiee_procedure' => 'administrateurs#export_with_publiee_procedure'
get 'exports/instructeurs/currently_active' => 'instructeurs#export_currently_active'
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
#
devise_for :super_admins, skip: [:registrations], controllers: {
sessions: 'super_admins/sessions',
passwords: 'super_admins/passwords'
}
namespace :super_admins do
resources :release_notes
end
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
devise_for :users, controllers: {
2018-01-15 19:02:12 +01:00
sessions: 'users/sessions',
registrations: 'users/registrations',
confirmations: 'users/confirmations',
passwords: 'users/passwords'
2018-01-15 19:02:12 +01:00
}
devise_scope :user do
get '/users/no_procedure' => 'users/sessions#no_procedure'
get 'connexion-par-jeton/:id' => 'users/sessions#sign_in_by_link', as: 'sign_in_by_link'
get 'lien-envoye' => 'users/sessions#link_sent', as: 'link_sent'
post '/instructeurs/reset-link-sent' => 'users/sessions#reset_link_sent'
get '/users/password/reset-link-sent' => 'users/passwords#reset_link_sent'
2024-03-18 10:19:30 +01:00
get 'logout' => 'users/sessions#logout'
end
post 'password_complexity' => 'password_complexity#show', as: 'show_password_complexity'
get 'check_email' => 'email_checker#show', as: 'show_email_suggestions'
resources :targeted_user_links, only: [:show]
2018-07-31 11:48:58 +02:00
#
# Main routes
#
root 'root#index'
get '/administration' => 'root#administration'
2015-10-05 16:42:29 +02:00
get 'users' => 'users#index'
get 'admin' => 'admin#index'
get '/stats' => 'stats#index'
get '/stats/download' => 'stats#download'
2017-03-24 18:04:37 +01:00
namespace :france_connect do
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
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'
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
post ':dossier_id/:stable_id/repetition', to: 'repetition#add', as: :repetition
delete ':dossier_id/:stable_id/repetition', to: 'repetition#remove'
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
get ':dossier_id/:stable_id/carte/features', to: 'carte#index', as: :carte_features
post ':dossier_id/:stable_id/carte/features', to: 'carte#create'
patch ':dossier_id/:stable_id/carte/features/:id', to: 'carte#update', as: :carte_feature
delete ':dossier_id/:stable_id/carte/features/:id', to: 'carte#destroy'
get ':dossier_id/:stable_id/piece_justificative', to: 'piece_justificative#show', as: :piece_justificative
put ':dossier_id/:stable_id/piece_justificative', to: 'piece_justificative#update'
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
resources :attachments, only: [:show, :destroy]
2021-04-29 09:32:25 +02:00
resources :recherche, only: [:index]
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
get "mentions-legales", to: "static_pages#legal_notice"
get "declaration-accessibilite", to: "static_pages#accessibility_statement"
2023-03-15 13:15:37 +01:00
get "carte", to: "carte#show"
post "webhooks/sendinblue", to: "webhook#sendinblue"
2018-08-29 21:26:22 +02:00
post "webhooks/helpscout", to: "webhook#helpscout"
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
get '/preremplir/:path', to: 'prefill_descriptions#edit', as: :preremplir
get '/preremplir/:path/schema', to: 'api/public/v1/json_description_procedures#show', as: :prefill_json_description, defaults: { format: :json }
resources :procedures, only: [], param: :path do
member do
resource :prefill_description, only: :update
resources :prefill_type_de_champs, only: :show
end
end
namespace :data_sources do
get :adresse, to: 'adresse#search', as: :data_source_adresse
get :commune, to: 'commune#search', as: :data_source_commune
get :education, to: 'education#search', as: :data_source_education
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
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
post '/carte/zones' => 'carte#zones'
get '/carte' => 'carte#show'
post '/carte' => 'carte#save'
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
# Redirection of legacy "/users/dossiers" route to "/dossiers"
get 'dossiers', to: redirect('/dossiers')
get 'dossiers/:id/recapitulatif', to: redirect('/dossiers/%{id}')
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
end
2019-09-24 16:38:58 +02:00
# order matters: we don't want those routes to match /admin/procedures/:id
get 'admin/procedures/new' => 'administrateurs/procedures#new', as: :new_admin_procedure
2019-09-24 16:38:58 +02:00
namespace :admin do
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')
namespace :assigns do
2018-08-29 22:11:38 +02:00
get 'show' # delete after fixed tests admin/instructeurs/show_spec without this line
end
end
2015-09-22 10:15:12 +02:00
resources :invites, only: [:show, :destroy] do
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')
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
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"
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
resources :pays, only: :index
namespace :public do
namespace :v1 do
resources :demarches, only: [] do
member do
resources :dossiers, only: [:create, :index]
resources :stats, only: :index
end
end
end
end
2015-12-21 17:50:34 +01:00
end
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
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'
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
get '/:path/france_connect', action: 'france_connect', as: :france_connect
2018-11-01 13:00:35 +01:00
end
resources :dossiers, only: [:index, :show, :destroy, :new] do
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'
post 'clone'
get 'siret'
post 'siret', to: 'dossiers#update_siret'
2018-10-15 12:25:25 +02:00
get 'etablissement'
get 'brouillon'
patch 'brouillon', to: 'dossiers#update'
post 'brouillon', to: 'dossiers#submit_brouillon'
2018-09-05 18:23:10 +02:00
get 'modifier', to: 'dossiers#modifier'
post 'modifier', to: 'dossiers#submit_en_construction'
get 'champs/:stable_id', to: 'dossiers#champ', as: :champ
2018-02-27 09:49:58 +01:00
get 'merci'
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'
get 'attestation'
get 'transferer', to: 'dossiers#transferer'
get 'papertrail', format: :pdf
get 'set_accuse_lecture_agreement_at'
end
2018-07-17 11:27:10 +02:00
collection do
resources :transfers, only: [:create, :update, :destroy]
2018-07-17 11:27:10 +02:00
end
end
2018-08-08 17:37:41 +02:00
resource :feedback, only: [:create]
get 'demarches' => 'demarches#index'
get 'deleted_dossiers' => 'dossiers#deleted_dossiers'
2019-07-02 18:15:03 +02:00
get 'profil' => 'profil#show'
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'
delete 'france_connect_information' => 'profil#destroy_fci'
patch 'preferred_domain', to: 'profil#preferred_domain'
get 'fermeture/:path', to: 'commencer#closing_details', as: :closing_details
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'
get 'avis_list'
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
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
#
# Instructeur
2018-07-31 11:48:58 +02:00
#
scope module: 'instructeurs', as: 'instructeur' do
resources :procedures, only: [] do
resources :export_templates, only: [:new, :create, :edit, :update, :destroy] do
collection do
put 'preview'
end
end
collection do
get 'order_positions'
patch 'update_order_positions'
end
end
resources :procedure_presentation, only: [:update] do
member do
get 'refresh_column_filter'
end
end
resources :procedures, only: [:index], param: :procedure_id do
2017-07-11 16:09:03 +02:00
member do
#
# 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
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
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'
post 'add_signature'
get 'preview_attestation'
2019-10-25 09:26:31 +02:00
end
end
2019-10-24 21:52:05 +02:00
get 'apercu'
get 'download_export'
post 'download_export'
get 'polling_last_export'
get 'stats'
get 'exports'
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'
get 'deleted_dossiers'
2021-07-22 14:33:02 +02:00
get 'email_usagers'
post 'create_multiple_commentaire'
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
#
# Gestionnaire
2023-08-25 22:53:30 +02:00
#
scope module: 'gestionnaires', as: 'gestionnaire' do
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]
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
member do
get :tree_structure, path: 'arborescence'
end
end
2023-08-25 22:53:30 +02:00
end
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
#
scope module: 'administrateurs', path: 'admin', as: 'admin' do
resources :procedures do
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
collection do
get 'new_from_existing'
post 'search'
get 'all' if Rails.application.config.ds_zonage_enabled
get 'administrateurs' if Rails.application.config.ds_zonage_enabled
end
2018-04-13 16:56:00 +02:00
member do
post 'detail'
2018-04-13 16:56:00 +02:00
get 'apercu'
2018-11-14 16:28:02 +01:00
get 'champs'
get 'zones'
2018-11-14 16:28:02 +01:00
get 'annotations'
get 'modifications'
get 'monavis'
patch 'update_monavis'
get 'accuse_lecture'
patch 'update_accuse_lecture'
get 'jeton'
patch 'update_jeton'
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
get :api_particulier, controller: 'jeton_particulier'
resource 'api_particulier', only: [] do
resource 'jeton', only: [:show, :update], controller: 'jeton_particulier'
2021-09-13 15:59:58 +02:00
resource 'sources', only: [:show, :update], controller: 'sources_particulier'
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
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
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
patch :update_defaut_groupe_instructeur, controller: 'routing_rules', as: :update_defaut_groupe_instructeur
2023-03-24 10:27:32 +01:00
put 'clone'
put 'archive'
get 'publication' => 'procedures#publication', as: :publication
get 'check_path' => 'procedures#check_path', as: :check_path
put 'publish' => 'procedures#publish', as: :publish
put 'reset_draft' => 'procedures#reset_draft', as: :reset_draft
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
get 'closing_notification' => 'procedures#closing_notification', as: :closing_notification
post 'notify_after_closing' => 'procedures#notify_after_closing', as: :notify_after_closing
get 'confirmation' => 'procedures#confirmation', as: :confirmation
post 'transfer' => 'procedures#transfer', as: :transfer
resources :mail_templates, only: [:edit, :update, :show]
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'
get 'reaffecter_dossiers'
post 'reaffecter'
post 'add_signature'
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'
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]
resources :experts, controller: 'experts_procedures', only: [:index, :create, :update, :destroy]
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
patch :move_and_morph
2022-06-01 15:23:18 +02:00
patch :move_up
patch :move_down
put :piece_justificative_template
put :notice_explicative
2019-03-20 14:27:30 +01:00
end
end
resources :mail_templates, only: [:index] do
get 'preview', on: :member
end
2024-10-29 15:39:58 +01:00
resources :labels, controller: 'labels'
2024-10-16 14:31:08 +02:00
resource :attestation_template, only: [:show, :edit, :update, :create] do
get 'preview', on: :member
end
resource :chorus, only: [:edit, :update] do
get 'add_champ_engagement_juridique'
end
2023-11-14 17:46:52 +01:00
resource :attestation_template_v2, only: [:show, :edit, :update, :create] do
post :reset
end
2023-11-14 17:46:52 +01:00
resource :dossier_submitted_message, only: [:edit, :update, :create]
# ADDED TO ACCESS IT FROM THE IFRAME
get 'attestation_template/preview' => 'attestation_templates#preview'
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
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
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
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'
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
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
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'
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
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'
get 'departements/:code/communes' => 'api_geo_test#communes'
end
end
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
#
# Legacy routes
2018-07-31 11:48:58 +02:00
#
get 'demandes/new' => redirect(DEMANDE_INSCRIPTION_ADMIN_PAGE_URL)
2018-07-31 11:48:58 +02:00
get 'backoffice' => redirect('/procedures')
get 'backoffice/sign_in' => redirect('/users/sign_in')
get 'backoffice/dossiers/procedure/:procedure_id' => redirect('/procedures/%{procedure_id}')
2015-08-10 11:05:06 +02:00
end