mirror of https://github.com/docusealco/docuseal
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							127 lines
						
					
					
						
							5.0 KiB
						
					
					
				
			
		
		
	
	
							127 lines
						
					
					
						
							5.0 KiB
						
					
					
				# frozen_string_literal: true
 | 
						|
 | 
						|
Rails.application.routes.draw do
 | 
						|
  mount LetterOpenerWeb::Engine, at: '/letter_opener' if Rails.env.development?
 | 
						|
  mount Sidekiq::Web => '/sidekiq' if defined?(Sidekiq)
 | 
						|
 | 
						|
  root 'dashboard#index'
 | 
						|
 | 
						|
  get 'up' => 'rails/health#show'
 | 
						|
 | 
						|
  devise_for :users,
 | 
						|
             path: '/', only: %i[sessions passwords omniauth_callbacks],
 | 
						|
             controllers: begin
 | 
						|
               options = { sessions: 'sessions', passwords: 'passwords' }
 | 
						|
               options[:omniauth_callbacks] = 'omniauth_callbacks' if User.devise_modules.include?(:omniauthable)
 | 
						|
               options
 | 
						|
             end
 | 
						|
 | 
						|
  devise_scope :user do
 | 
						|
    if Docuseal.multitenant?
 | 
						|
      resource :registration, only: %i[show], path: 'sign_up'
 | 
						|
      unauthenticated do
 | 
						|
        resource :registration, only: %i[create], path: 'new' do
 | 
						|
          get '' => :new, as: :new
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    resource :invitation, only: %i[update] do
 | 
						|
      get '' => :edit
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  namespace :api, defaults: { format: :json } do
 | 
						|
    resources :attachments, only: %i[create]
 | 
						|
    resources :submitters_autocomplete, only: %i[index]
 | 
						|
    resources :template_folders_autocomplete, only: %i[index]
 | 
						|
    resources :submitter_email_clicks, only: %i[create]
 | 
						|
    resources :submitter_form_views, only: %i[create]
 | 
						|
    resources :submitters, only: %i[index show update]
 | 
						|
    resources :submissions, only: %i[index show create destroy] do
 | 
						|
      collection do
 | 
						|
        resources :emails, only: %i[create], controller: 'submissions', as: :submissions_emails
 | 
						|
      end
 | 
						|
    end
 | 
						|
    resources :templates, only: %i[update show index destroy] do
 | 
						|
      resources :clone, only: %i[create], controller: 'templates_clone'
 | 
						|
      resources :submissions, only: %i[index create]
 | 
						|
      resources :documents, only: %i[create], controller: 'templates_documents'
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  resources :verify_pdf_signature, only: %i[create]
 | 
						|
  resource :mfa_setup, only: %i[show new edit create destroy], controller: 'mfa_setup'
 | 
						|
  resources :account_configs, only: %i[create]
 | 
						|
  resources :timestamp_server, only: %i[create]
 | 
						|
  resources :dashboard, only: %i[index]
 | 
						|
  resources :setup, only: %i[index create]
 | 
						|
  resource :newsletter, only: %i[show update]
 | 
						|
  resources :enquiries, only: %i[create]
 | 
						|
  resources :users, only: %i[new create edit update destroy]
 | 
						|
  resource :user_signature, only: %i[edit update destroy]
 | 
						|
  resources :submissions, only: %i[show destroy]
 | 
						|
  resources :console_redirect, only: %i[index]
 | 
						|
  resource :templates_upload, only: %i[create]
 | 
						|
  authenticated do
 | 
						|
    resource :templates_upload, only: %i[show], path: 'new'
 | 
						|
  end
 | 
						|
  resources :templates_archived, only: %i[index], path: 'archived'
 | 
						|
  resources :folders, only: %i[show edit update destroy], controller: 'template_folders'
 | 
						|
  resources :templates, only: %i[new create edit show destroy] do
 | 
						|
    resources :restore, only: %i[create], controller: 'templates_restore'
 | 
						|
    resources :archived, only: %i[index], controller: 'templates_archived_submissions'
 | 
						|
    resources :submissions, only: %i[new create]
 | 
						|
    resource :folder, only: %i[edit update], controller: 'templates_folders'
 | 
						|
    resources :submissions_export, only: %i[index new]
 | 
						|
  end
 | 
						|
  resources :preview_document_page, only: %i[show], path: '/preview/:attachment_uuid'
 | 
						|
 | 
						|
  resources :start_form, only: %i[show update], path: 'd', param: 'slug' do
 | 
						|
    get :completed
 | 
						|
  end
 | 
						|
 | 
						|
  resources :submit_form, only: %i[show update], path: 's', param: 'slug' do
 | 
						|
    get :completed
 | 
						|
  end
 | 
						|
 | 
						|
  resources :submissions_preview, only: %i[show], path: 'e', param: 'slug'
 | 
						|
 | 
						|
  resources :send_submission_email, only: %i[create] do
 | 
						|
    get :success, on: :collection
 | 
						|
  end
 | 
						|
 | 
						|
  resources :submitters, only: %i[], param: 'slug' do
 | 
						|
    resources :download, only: %i[index], controller: 'submissions_download'
 | 
						|
    resources :send_email, only: %i[create], controller: 'submitters_send_email'
 | 
						|
    resources :debug, only: %i[index], controller: 'submissions_debug' if Rails.env.development?
 | 
						|
  end
 | 
						|
 | 
						|
  scope '/settings', as: :settings do
 | 
						|
    unless Docuseal.multitenant?
 | 
						|
      resources :storage, only: %i[index create], controller: 'storage_settings'
 | 
						|
      resources :email, only: %i[index create], controller: 'email_smtp_settings'
 | 
						|
      resources :sms, only: %i[index], controller: 'sms_settings'
 | 
						|
      resources :sso, only: %i[index], controller: 'sso_settings'
 | 
						|
    end
 | 
						|
    resources :notifications, only: %i[index create], controller: 'notifications_settings'
 | 
						|
    resource :esign, only: %i[show create new update destroy], controller: 'esign_settings'
 | 
						|
    resources :users, only: %i[index]
 | 
						|
    resource :personalization, only: %i[show create], controller: 'personalization_settings'
 | 
						|
    if !Docuseal.multitenant? || Docuseal.demo?
 | 
						|
      resources :api, only: %i[index create], controller: 'api_settings'
 | 
						|
      resource :webhooks, only: %i[show create update], controller: 'webhook_settings'
 | 
						|
    end
 | 
						|
    resource :account, only: %i[show update]
 | 
						|
    resources :profile, only: %i[index] do
 | 
						|
      collection do
 | 
						|
        patch :update_contact
 | 
						|
        patch :update_password
 | 
						|
        patch :update_app_url
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  ActiveSupport.run_load_hooks(:routes, self)
 | 
						|
end
 |