Files
old-holivud2/config/routes.rb
2020-08-20 06:50:51 +02:00

208 lines
9.0 KiB
Ruby

require 'oath/constraints/signed_in'
require 'sidekiq/web'
Rails.application.routes.draw do
AVAILABLE_LOCALES_REGEX = /#{I18n.available_locales.join("|")}/.freeze
concern :confirmable do
resources :video_release_confirmations, only: [:new, :create, :destroy]
end
concern :contractable do
resource :contracts, only: [:show]
end
concern :notable do
resources :notes, only: [:index, :new, :create]
end
concern :photoable do
resource :photos, only: [:edit, :update]
end
concern :taggable do
resources :acts_as_taggable_on_tags, only: [:new, :create, :destroy], controller: "tags"
end
concern :file_uploadable do
resource :files, only: [:edit, :update]
end
concern :approvable do
resource :approvals, only: [:new, :create]
end
constraints AdminSignedInConstraint.new do
namespace :admin do
mount Sidekiq::Web => '/background_queue', as: :background_queue
resources :accounts, only: [:index, :new, :create, :edit, :update, :show]
resources :users, only: [:index, :new, :create, :edit, :update, :destroy] do
resource :masquerade, only: :create
end
resources :task_requests, only: [:index, :edit, :update, :show]
resources :broadcasts, only: [:edit, :update]
root to: "accounts#index", as: :signed_in_root
end
end
namespace :admin do
resource :masquerade, only: :destroy
end
scope "(:locale)", locale: AVAILABLE_LOCALES_REGEX do
resource :account_session, only: [:update]
resource :session, only: [:destroy]
resource :account, only: [:new, :create, :update]
resources :account_auths, only: [:index, :create, :update, :destroy]
resources :projects, shallow: true do
resources :acquired_media_releases, except: [:show], concerns: [:contractable, :notable, :file_uploadable]
resources :appearance_releases, except: [:show], concerns: [:contractable, :notable]
resources :appearance_release_imports, only: [:create]
resources :location_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
resources :material_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
resources :music_releases, except: [:show], concerns: [:contractable, :notable]
resources :talent_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
resources :medical_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
resources :misc_releases, except: [:show], concerns: [:contractable, :notable, :photoable]
resources :contract_templates, only: [:index, :new, :create, :edit, :update, :destroy] do
resource :qr_codes, only: [:show], controller: "contract_templates/qr_codes"
resource :blank_contracts, only: [:show, :new, :create], controller: "contract_templates/blank_contracts"
resource :duplicates, only: [:create], controller: "contract_templates/duplicates"
end
resource :release_template_imports, only: [:new, :create]
resources :project_memberships, only: [:index, :create, :destroy]
resources :reports, only: [:index]
resource :contract_downloads, only: [:create]
resources :downloads, only: [:index, :destroy]
resource :report_downloads, only: [:create]
resources :videos, only: [:index, :new, :create, :edit, :update] do
collection do
get :landing
end
resources :bookmarks, only: [:new, :create, :destroy, :edit, :update]
resource :video_reports, only: [:show]
resource :graphic_reports, only: [:show]
resource :audio_reports, only: [:show]
resource :issues_and_concerns_reports, only: [:show]
resource :report_publications, only: [:create, :destroy], controller: "videos/report_publications"
resource :video_analyses, only: [:create, :show] do
resources :audio_confirmations, only: [:new, :create, :destroy], controller: "video_analyses/audio_confirmations"
resources :unreleased_appearances, only: [:new, :create, :edit, :update, :destroy], controller: "video_analyses/unreleased_appearances"
resources :edl_events, only: [:create], controller: "video_analyses/edl_events"
resources :graphics_elements, only: [:new, :create, :edit, :update, :destroy], controller: "video_analyses/graphics_elements"
resources :talent_releases, only: [:index], controller: "video_analyses/talent_releases"
resources :appearance_releases, only: [:index], controller: "video_analyses/appearance_releases"
resources :location_releases, only: [:index], controller: "video_analyses/location_releases"
resources :music_releases, only: [:index], controller: "video_analyses/music_releases"
resources :acquired_media_releases, only: [:index], controller: "video_analyses/acquired_media_releases"
resources :material_releases, only: [:index], controller: "video_analyses/material_releases"
end
end
end
resources :projects, only: [] do
resources :broadcasts, except: [:edit] do
member do
delete :destroy_file
end
resource :zoom_meeting, only: [:show]
resources :broadcast_recordings, only: :destroy
end
resources :directories, except: [:index] do
member do
get :new_file
delete :destroy_file
end
end
resources :task_requests, except: :destroy do
member do
post :cancel
end
end
resources :tasks, only: :index
end
resource :profile, only: [:show, :update]
resources :videos, only: [] do
resources :talent_releases, only: [], concerns: :confirmable
resources :appearance_releases, only: [], concerns: :confirmable
resources :location_releases, only: [], concerns: :confirmable
resources :acquired_media_releases, only: [], concerns: :confirmable
resources :music_releases, only: [], concerns: :confirmable
resources :material_releases, only: [], concerns: :confirmable
end
scope module: :public do
resources :accounts, only: [] do
resources :projects, only: [] do
resources :contract_templates, only: [:index] do
resources :talent_releases, only: [:new, :create]
resources :appearance_releases, only: [:new, :create] do
resources :amendments, only: [:new, :create]
end
resources :acquired_media_releases, only: [:new, :create]
resources :location_releases, only: [:new, :create] do
resources :amendments, only: [:new, :create]
end
resources :material_releases, only: [:new, :create]
resources :medical_releases, only: [:new, :create]
resources :misc_releases, only: [:new, :create]
end
end
end
resources :broadcasts, param: :token, only: [:show, :update] do
resource :zoom_meeting, only: [:show]
end
end
RELEASES = [:acquired_media_releases, :appearance_releases, :talent_releases, :material_releases, :medical_releases, :misc_releases, :location_releases].freeze
ALL_RELEASES = RELEASES + [:music_releases]
ALL_RELEASES.each do |release|
resources release, only: [], concerns: [:taggable, :approvable]
end
resources :bulk_taggings, only: [:new, :create]
namespace :api do
scope 'v1' do
get 'sync' => 'sync#index'
post 'user_token' => 'user_token#create'
post 'users' => 'users#create'
resource :profiles, only: [:show]
resources :projects, only: [:index] do
resources :broadcasts, only: [:index, :show, :update]
RELEASES.each do |release|
resources release, only: [:index]
end
resources :contract_templates, only: [:index]
end
resources :contract_templates, only: [:show] do
(RELEASES - [:misc_releases, :medical_releases]).each do |release|
resources release, controller: release, only: [:create]
end
end
(RELEASES - [:appearance_releases]).each do |release|
resources release, only: [:show, :update] do
resources :notes, controller: "notes", only: [:create, :index]
end
end
resources :appearance_releases, only: [:show] do
resources :notes, controller: "notes", only: [:create, :index]
end
resources :direct_uploads, only: [:create]
end
end
# TODO: what's the format on this? JSON only?
resources :notifications, only: [:create]
resources :stream_notifications, only: [:create]
resources :zoom_notifications, only: [:create]
get '/multipart_signatures', to: 'multipart_signatures#create', as: :multipart_signatures
get "cookies_disabled" => 'pages#show', id: "cookies_disabled", as: :cookies_disabled
get "accountless_user" => 'pages#show', id: "accountless_user", as: :accountless_user
resource :session, only: [:new, :create]
resources :password_resets, only: [:new, :create, :edit, :update]
root to: 'projects#index', as: :signed_in_root
end
end