demarches-normaliennes/config/routes.rb

394 lines
12 KiB
Ruby
Raw Normal View History

2015-08-10 11:05:06 +02:00
Rails.application.routes.draw do
2018-07-31 11:48:58 +02:00
#
# Manager
#
get 'manager/sign_in' => 'administrations/sessions#new'
delete 'manager/sign_out' => 'administrations/sessions#destroy'
2017-12-28 19:44:11 +01:00
namespace :manager do
resources :procedures, only: [:index, :show] do
2018-01-10 17:42:21 +01:00
post 'whitelist', on: :member
post 'draft', on: :member
post 'hide', on: :member
end
resources :dossiers, only: [:index, :show] do
post 'change_state_to_instruction', on: :member
end
2018-01-18 10:04:34 +01:00
resources :administrateurs, only: [:index, :show, :new, :create] do
post 'reinvite', on: :member
put 'enable_feature', on: :member
2018-01-18 10:04:34 +01:00
end
2017-12-28 19:44:11 +01:00
resources :users, only: [:index, :show] do
post 'resend_confirmation_instructions', on: :member
end
2018-06-14 16:41:10 +02:00
resources :gestionnaires, only: [:index, :show] do
post 'reinvite', on: :member
2018-11-08 17:13:48 +01:00
put 'enable_feature', on: :member
2018-06-14 16:41:10 +02:00
end
2018-05-31 15:18:06 +02:00
resources :dossiers, only: [:show]
resources :demandes, only: [:index]
2018-10-02 16:04:14 +02:00
resources :services, only: [:index, :show]
2018-03-21 10:28:17 +01:00
post 'demandes/create_administrateur'
2018-03-27 13:32:14 +02:00
post 'demandes/refuse_administrateur'
2018-01-16 16:58:52 +01:00
authenticate :administration do
mount Flipflop::Engine => "/features"
2018-01-16 16:58:52 +01:00
match "/delayed_job" => DelayedJobWeb, :anchor => false, :via => [:get, :post]
end
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
#
get "/ping" => "ping#index", :constraints => { :ip => /127.0.0.1/ }
2016-06-01 15:07:27 +02:00
2018-07-31 11:48:58 +02:00
#
# Authentication
#
2017-12-20 15:27:33 +01:00
devise_for :administrations,
2017-12-21 11:41:44 +01:00
skip: [:password, :registrations, :sessions],
controllers: {
omniauth_callbacks: 'administrations/omniauth_callbacks'
}
2016-02-23 16:51:24 +01:00
devise_for :administrateurs, controllers: {
2018-01-15 19:02:12 +01:00
sessions: 'administrateurs/sessions'
}, skip: [:password, :registrations]
2015-09-23 10:02:01 +02:00
2015-09-22 10:15:12 +02:00
devise_for :gestionnaires, controllers: {
2018-01-15 19:02:12 +01:00
sessions: 'gestionnaires/sessions',
passwords: 'gestionnaires/passwords'
}, skip: [:registrations]
2015-08-10 11:05:06 +02: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
2017-11-10 18:01:40 +01:00
get '/users/sign_in/demo' => redirect("/users/sign_in")
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/:email' => 'users/sessions#link_sent', constraints: { email: /.*/ }, as: 'link_sent'
end
devise_scope :gestionnaire do
2017-11-10 18:01:40 +01:00
get '/gestionnaires/sign_in/demo' => redirect("/users/sign_in")
get '/gestionnaires/edit' => 'gestionnaires/registrations#edit', :as => 'edit_gestionnaires_registration'
put '/gestionnaires' => 'gestionnaires/registrations#update', :as => 'gestionnaires_registration'
end
2016-02-19 17:27:14 +01:00
devise_scope :administrateur do
2017-11-10 18:01:40 +01:00
get '/administrateurs/sign_in/demo' => redirect("/users/sign_in")
2016-02-19 17:27:14 +01:00
end
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'
resources :demandes, only: [:new, :create]
2017-03-24 18:04:37 +01:00
namespace :france_connect do
get 'particulier' => 'particulier#login'
get 'particulier/callback' => 'particulier#callback'
end
2015-08-10 11:05:06 +02:00
2018-04-03 17:53:14 +02:00
namespace :champs do
2018-09-06 19:23:27 +02:00
get ':position/siret', to: 'siret#show', as: :siret
get ':position/dossier_link', to: 'dossier_link#show', as: :dossier_link
2018-10-17 12:02:34 +02:00
post ':position/carte', to: 'carte#show', as: :carte
2019-01-30 16:14:15 +01:00
post ':position/repetition', to: 'repetition#show', as: :repetition
2018-04-03 17:53:14 +02:00
end
get 'tour-de-france' => 'root#tour_de_france'
2018-07-31 11:48:58 +02:00
get "patron" => "root#patron"
get "accessibilite" => "root#accessibilite"
2018-11-07 16:54:18 +01:00
get "suivi" => "root#suivi"
2018-07-31 11:48:58 +02:00
2018-08-29 21:26:22 +02:00
get "contact", to: "support#index"
post "contact", to: "support#create"
2018-11-28 15:19:12 +01:00
get "contact-admin", to: "support#admin"
2018-08-29 21:26:22 +02:00
post "webhooks/helpscout", to: "webhook#helpscout"
match "webhooks/helpscout", to: lambda { |_| [204, {}, nil] }, via: :head
2018-08-29 11:44:12 +02:00
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'
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-09-23 19:20:03 +02:00
end
2015-08-10 11:05:06 +02:00
namespace :gestionnaire do
get 'activate' => '/gestionnaires/activate#new'
patch 'activate' => '/gestionnaires/activate#create'
end
namespace :admin do
get 'activate' => '/administrateurs/activate#new'
patch 'activate' => '/administrateurs/activate#create'
2018-09-27 15:11:22 +02:00
get 'activate/test_password_strength' => '/administrateurs/activate#test_password_strength'
get 'sign_in' => '/administrateurs/sessions#new'
get 'procedures/archived' => 'procedures#archived'
get 'procedures/draft' => 'procedures#draft'
get 'procedures/path_list' => 'procedures#path_list'
2018-09-04 14:53:18 +02:00
get 'procedures/available' => 'procedures#check_availability'
2015-10-26 15:54:20 +01:00
resources :procedures do
collection do
get 'new_from_existing' => 'procedures#new_from_existing', as: :new_from_existing
end
2017-06-28 18:18:51 +02:00
member do
delete :delete_logo
delete :delete_deliberation
2018-09-24 09:49:51 +02:00
delete :delete_notice
2017-06-28 18:18:51 +02:00
end
resources :types_de_champ, only: [:destroy]
resource :types_de_champ, only: [:show, :update] do
post '/:index/move_up' => 'types_de_champ#move_up', as: :move_up
post '/:index/move_down' => 'types_de_champ#move_down', as: :move_down
end
resources :types_de_champ_private, only: [:destroy]
resource :types_de_champ_private, only: [:show, :update] do
post '/:index/move_up' => 'types_de_champ_private#move_up', as: :move_up
post '/:index/move_down' => 'types_de_champ_private#move_down', as: :move_down
end
resource :pieces_justificatives, only: [:show, :update]
resources :pieces_justificatives, only: :destroy
resource :pieces_justificatives, only: [:show, :update] do
post '/:index/move_up' => 'pieces_justificatives#move_up', as: :move_up
post '/:index/move_down' => 'pieces_justificatives#move_down', as: :move_down
end
2015-11-26 18:41:41 +01:00
resources :mail_templates, only: [:index, :edit, :update]
put 'archive' => 'procedures#archive', as: :archive
put 'publish' => 'procedures#publish', as: :publish
post 'transfer' => 'procedures#transfer', as: :transfer
2016-06-15 11:34:05 +02:00
put 'clone' => 'procedures#clone', as: :clone
2015-11-26 18:41:41 +01:00
2018-08-29 22:11:38 +02:00
resource :instructeurs, only: [:show, :update]
resource :attestation_template, only: [:edit, :update, :create]
post 'attestation_template/disactivate' => 'attestation_templates#disactivate'
patch 'attestation_template/disactivate' => 'attestation_templates#disactivate'
post 'attestation_template/preview' => 'attestation_templates#preview'
patch 'attestation_template/preview' => 'attestation_templates#preview'
delete 'attestation_template/logo' => 'attestation_templates#delete_logo'
delete 'attestation_template/signature' => 'attestation_templates#delete_signature'
2015-10-26 15:54:20 +01:00
end
2018-08-29 22:11:38 +02:00
namespace :instructeurs do
get 'show' # delete after fixed tests admin/instructeurs/show_spec without this line
end
2016-02-09 12:23:49 +01:00
resources :gestionnaires, only: [:index, :create, :destroy]
end
2015-09-22 10:15:12 +02:00
2018-07-31 11:48:58 +02:00
#
# Addresses
#
2018-10-15 23:40:39 +02:00
get 'address/suggestions' => 'address#suggestions'
get 'address/geocode' => 'address#geocode'
resources :invites, only: [:show] 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
#
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
end
2018-07-31 11:48:58 +02:00
#
# User
#
2017-06-14 14:42:09 +02:00
scope module: 'new_user' do
2018-11-01 13:00:35 +01:00
namespace :commencer do
get '/test/:path', action: 'commencer_test', as: :test
get '/:path', action: 'commencer'
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
2018-11-01 13:00:35 +01:00
end
resources :dossiers, only: [:index, :show, :new] do
member do
get 'identite'
2018-02-08 17:13:15 +01:00
patch 'update_identite'
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_brouillon'
2018-09-05 18:23:10 +02:00
get 'modifier', to: 'dossiers#modifier'
patch 'modifier', to: 'dossiers#update'
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'
post 'ask_deletion'
get 'attestation'
resources :champs, only: [] do
delete 'purge_champ_piece_justificative' => 'dossiers#purge_champ_piece_justificative'
end
end
2018-07-17 11:27:10 +02:00
collection do
post 'recherche'
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'
end
2018-07-31 11:48:58 +02:00
#
# Gestionnaire
#
2018-02-21 13:09:39 +01:00
scope module: 'new_gestionnaire', as: 'gestionnaire' do
2017-07-11 16:09:03 +02:00
resources :procedures, only: [:index, :show], param: :procedure_id do
member do
patch 'update_displayed_fields'
2017-09-27 15:16:07 +02:00
get 'update_sort/:table/:column' => 'procedures#update_sort', as: 'update_sort'
2017-09-28 11:04:18 +02:00
post 'add_filter'
get 'remove_filter/:statut/:table/:column' => 'procedures#remove_filter', as: 'remove_filter'
get 'download_dossiers'
resources :dossiers, only: [:show], param: :dossier_id do
member do
get 'attestation'
get 'apercu_attestation'
2017-07-19 11:08:53 +02:00
get 'messagerie'
get 'annotations-privees' => 'dossiers#annotations_privees'
2017-09-26 14:38:16 +02:00
get 'avis'
get 'personnes-impliquees' => 'dossiers#personnes_impliquees'
patch 'follow'
patch 'unfollow'
patch 'archive'
patch 'unarchive'
2017-08-02 15:33:23 +02:00
patch 'annotations' => 'dossiers#update_annotations'
post 'commentaire' => 'dossiers#create_commentaire'
post 'passer-en-instruction' => 'dossiers#passer_en_instruction'
post 'repasser-en-construction' => 'dossiers#repasser_en_construction'
2017-12-01 12:57:01 +01:00
post 'terminer'
post 'send-to-instructeurs' => 'dossiers#send_to_instructeurs'
2017-08-28 14:16:13 +02:00
post 'avis' => 'dossiers#create_avis'
get 'print' => 'dossiers#print'
resources :champs, only: [] do
delete 'purge_champ_piece_justificative' => 'dossiers#purge_champ_piece_justificative'
end
end
2017-07-11 16:09:03 +02:00
end
end
end
2017-09-06 16:14:03 +02:00
resources :avis, only: [:index, :show, :update] do
member do
get 'instruction'
2017-09-06 17:06:03 +02:00
get 'messagerie'
post 'commentaire' => 'avis#create_commentaire'
post 'avis' => 'avis#create_avis'
get 'sign_up/email/:email' => 'avis#sign_up', constraints: { email: /.*/ }, as: 'sign_up'
post 'sign_up/email/:email' => 'avis#create_gestionnaire', constraints: { email: /.*/ }
2017-09-06 16:14:03 +02:00
end
end
2017-11-22 09:56:36 +01:00
get "recherche" => "recherche#index"
end
2018-07-31 11:48:58 +02:00
#
# Administrateur
#
2018-04-13 16:56:00 +02:00
scope module: 'new_administrateur' do
2018-11-14 16:24:34 +01:00
resources :procedures, only: [:update] do
2018-04-13 16:56:00 +02:00
member do
get 'apercu'
2018-11-14 16:28:02 +01:00
get 'champs'
get 'annotations'
2018-04-13 16:56:00 +02:00
end
resources :types_de_champ, only: [:create, :update, :destroy]
2018-04-13 16:56:00 +02:00
end
2018-04-19 16:15:44 +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'
end
end
2018-08-23 18:53:35 +02:00
get 'profil' => 'profil#show'
post 'renew-api-token' => 'profil#renew_api_token'
2018-08-24 17:06:36 +02:00
# allow refresh 'renew api token' page
get 'renew-api-token' => redirect('/profil')
2018-04-13 16:56:00 +02:00
end
2018-07-31 11:48:58 +02:00
#
# Legacy routes
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