fljn
This commit is contained in:
commit
82c1c20d8b
1 changed files with 717 additions and 0 deletions
717
routes.rb
Normal file
717
routes.rb
Normal file
|
|
@ -0,0 +1,717 @@
|
|||
Rails.application.routes.draw do
|
||||
devise_scope :admin do
|
||||
get "admin/logout" => "admin/sessions#confirm_logout"
|
||||
|
||||
# Rails emulates some HTTP methods over POST, so password resets (PUT /admin/password)
|
||||
# look the same as password reset requests (POST /admin/password).
|
||||
#
|
||||
# To rate limit them differently at nginx, we set up an alias for
|
||||
# the first request type.
|
||||
put "admin/password/reset" => "admin/passwords#update"
|
||||
end
|
||||
|
||||
devise_for :admin,
|
||||
module: "admin",
|
||||
only: [:sessions, :passwords],
|
||||
controllers: {
|
||||
sessions: "admin/sessions",
|
||||
passwords: "admin/passwords"
|
||||
},
|
||||
path_names: {
|
||||
sign_in: "login",
|
||||
sign_out: "logout"
|
||||
}
|
||||
|
||||
devise_scope :user do
|
||||
get "signup(/:invitation_token)" => "users/registrations#new", as: "signup"
|
||||
get "users/logout" => "users/sessions#confirm_logout"
|
||||
|
||||
# Rails emulate some HTTP methods over POST, so password resets (PUT /users/password)
|
||||
# look the same as password reset requests (POST /users/password).
|
||||
#
|
||||
# To rate limit them differently at nginx, we set up an alias for
|
||||
# the first request type.
|
||||
put "users/password/reset" => "users/passwords#update"
|
||||
end
|
||||
|
||||
devise_for :users,
|
||||
module: "users",
|
||||
controllers: {
|
||||
sessions: "users/sessions",
|
||||
registrations: "users/registrations",
|
||||
passwords: "users/passwords"
|
||||
},
|
||||
path_names: {
|
||||
sign_in: "login",
|
||||
sign_out: "logout"
|
||||
}
|
||||
|
||||
#### ERRORS ####
|
||||
|
||||
get '/403', to: 'errors#403'
|
||||
get '/404', to: 'errors#404'
|
||||
get '/422', to: 'errors#422'
|
||||
get '/500', to: 'errors#500'
|
||||
get '/auth_error', to: 'errors#auth_error'
|
||||
get "/timeout_error", to: "errors#timeout_error"
|
||||
get '/statuses', to: 'statuses#redirect_to_current_user'
|
||||
get '/statuses/new', to: 'statuses#redirect_to_current_user_new' #### DOWNLOADS ####
|
||||
|
||||
get 'downloads/:id/:download_title.:format' => 'downloads#show', as: 'download'
|
||||
|
||||
#### OPEN DOORS ####
|
||||
namespace :opendoors do
|
||||
resources :tools, only: [:index] do
|
||||
collection do
|
||||
post :url_update
|
||||
end
|
||||
end
|
||||
resources :external_authors do
|
||||
member do
|
||||
post :forward
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#### INVITATIONS ####
|
||||
|
||||
resources :invitations
|
||||
resources :user_invite_requests
|
||||
resources :invite_requests, only: [:index, :create, :destroy] do
|
||||
collection do
|
||||
get :manage
|
||||
get :status
|
||||
post :resend
|
||||
end
|
||||
end
|
||||
|
||||
get 'claim/:invitation_token' => 'external_authors#claim', as: 'claim'
|
||||
post 'complete_claim/:invitation_token' => 'external_authors#complete_claim', as: 'complete_claim'
|
||||
|
||||
#### TAGS ####
|
||||
|
||||
resources :media do
|
||||
resources :fandoms
|
||||
end
|
||||
resources :fandoms do
|
||||
collection do
|
||||
get :unassigned
|
||||
end
|
||||
get :show
|
||||
end
|
||||
resources :tag_wranglings do
|
||||
collection do
|
||||
post :wrangle
|
||||
end
|
||||
end
|
||||
resources :tag_wranglers do
|
||||
member do
|
||||
get :report_csv
|
||||
end
|
||||
end
|
||||
resources :unsorted_tags do
|
||||
collection do
|
||||
post :mass_update
|
||||
end
|
||||
end
|
||||
resources :tags do
|
||||
member do
|
||||
get :feed
|
||||
post :mass_update
|
||||
get :remove_association
|
||||
get :wrangle
|
||||
end
|
||||
collection do
|
||||
get :show_hidden
|
||||
get :search
|
||||
end
|
||||
resources :works
|
||||
resources :bookmarks
|
||||
resources :comments
|
||||
resource :troubleshooting, controller: :troubleshooting, only: [:show, :update]
|
||||
end
|
||||
|
||||
resources :tag_sets, controller: 'owned_tag_sets' do
|
||||
resources :nominations, controller: 'tag_set_nominations' do
|
||||
collection do
|
||||
put :update_multiple
|
||||
delete :destroy_multiple
|
||||
get :confirm_destroy_multiple
|
||||
end
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
end
|
||||
resources :associations, controller: 'tag_set_associations', only: [:index] do
|
||||
collection do
|
||||
put :update_multiple
|
||||
end
|
||||
end
|
||||
member do
|
||||
get :batch_load
|
||||
put :do_batch_load
|
||||
get :confirm_delete
|
||||
end
|
||||
collection do
|
||||
get :show_options
|
||||
end
|
||||
end
|
||||
resources :tag_nominations, only: [:update]
|
||||
|
||||
resources :tag_wrangling_requests, only: [:index] do
|
||||
collection do
|
||||
patch :update_multiple
|
||||
end
|
||||
end
|
||||
|
||||
#### ADMIN ####
|
||||
resources :admin_posts do
|
||||
resources :comments do
|
||||
collection do
|
||||
get :unreviewed
|
||||
put :review_all
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
namespace :admin do
|
||||
resources :activities, only: [:index, :show]
|
||||
resources :banners do
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
end
|
||||
resources :blacklisted_emails, only: [:index, :create, :destroy]
|
||||
resources :settings
|
||||
resources :skins do
|
||||
collection do
|
||||
get :index_rejected
|
||||
get :index_approved
|
||||
end
|
||||
end
|
||||
resources :spam, only: [:index] do
|
||||
collection do
|
||||
post :bulk_update
|
||||
end
|
||||
end
|
||||
resources :user_creations, only: [:destroy] do
|
||||
member do
|
||||
put :hide
|
||||
put :set_spam
|
||||
get :confirm_remove_pseud
|
||||
put :remove_pseud
|
||||
end
|
||||
end
|
||||
resources :users, controller: "admin_users", only: [:index, :show] do
|
||||
member do
|
||||
get :confirm_delete_user_creations
|
||||
post :destroy_user_creations
|
||||
post :activate
|
||||
get :check_user
|
||||
get :creations
|
||||
end
|
||||
collection do
|
||||
get :bulk_search
|
||||
post :bulk_search
|
||||
post :update
|
||||
post :update_status
|
||||
post :update_next_of_kin
|
||||
end
|
||||
end
|
||||
resources :invitations, controller: 'admin_invitations' do
|
||||
collection do
|
||||
post :invite_from_queue
|
||||
post :grant_invites_to_users
|
||||
get :find
|
||||
end
|
||||
end
|
||||
resources :api
|
||||
end
|
||||
resources :admins, only: [:index]
|
||||
|
||||
post '/admin/api/new', to: 'admin/api#create'
|
||||
|
||||
#### USERS ####
|
||||
|
||||
resources :people, only: [:index] do
|
||||
collection do
|
||||
get :search
|
||||
end
|
||||
end
|
||||
|
||||
# When adding new nested resources, please keep them in alphabetical order
|
||||
resources :users, except: [:new, :create] do
|
||||
member do
|
||||
get :change_email
|
||||
put :confirm_change_email
|
||||
post :changed_email
|
||||
get :change_password
|
||||
post :changed_password
|
||||
get :change_username
|
||||
post :changed_username
|
||||
post :end_first_login
|
||||
post :end_banner
|
||||
post :end_tos_prompt
|
||||
get :reconfirm_email
|
||||
end
|
||||
resources :assignments, controller: "challenge_assignments", only: [:index]
|
||||
resources :claims, controller: "challenge_claims", only: [:index]
|
||||
resources :bookmarks
|
||||
resources :collection_items, only: [:index, :update] do
|
||||
collection do
|
||||
patch :update_multiple
|
||||
end
|
||||
end
|
||||
resources :collections, only: [:index]
|
||||
resources :comments do
|
||||
member do
|
||||
put :approve
|
||||
put :reject
|
||||
end
|
||||
end
|
||||
resource :creatorships, controller: "creatorships", only: [:show, :update]
|
||||
resources :external_authors do
|
||||
resources :external_author_names
|
||||
end
|
||||
resources :favorite_tags, only: [:create, :destroy]
|
||||
resources :gifts, only: [:index]
|
||||
resource :inbox, controller: "inbox" do
|
||||
member do
|
||||
get :reply
|
||||
post :delete
|
||||
end
|
||||
end
|
||||
resources :invitations do
|
||||
collection do
|
||||
post :invite_friend
|
||||
end
|
||||
collection do
|
||||
get :manage
|
||||
end
|
||||
end
|
||||
resources :nominations, controller: "tag_set_nominations", only: [:index]
|
||||
resources :preferences, only: [:index, :update]
|
||||
resource :profile, only: [:show], controller: "profile" do
|
||||
collection do
|
||||
get :pseuds
|
||||
end
|
||||
end
|
||||
resources :pseuds do
|
||||
resources :works
|
||||
resources :series
|
||||
resources :bookmarks
|
||||
end
|
||||
resources :readings do
|
||||
collection do
|
||||
post :clear
|
||||
end
|
||||
end
|
||||
resources :related_works
|
||||
resources :series do
|
||||
member do
|
||||
get :manage
|
||||
end
|
||||
resources :serial_works
|
||||
end
|
||||
resources :signups, controller: "challenge_signups", only: [:index]
|
||||
resources :skins, only: [:index]
|
||||
resources :stats, only: [:index]
|
||||
resources :statuses
|
||||
resources :subscriptions, only: [:index, :create, :destroy] do
|
||||
collection do
|
||||
get :confirm_delete_all
|
||||
post :delete_all
|
||||
end
|
||||
end
|
||||
resources :tag_sets, controller: "owned_tag_sets", only: [:index]
|
||||
resources :works do
|
||||
collection do
|
||||
get :drafts
|
||||
get :collected
|
||||
get :show_multiple
|
||||
post :edit_multiple
|
||||
patch :update_multiple
|
||||
post :delete_multiple
|
||||
end
|
||||
end
|
||||
namespace :blocked do
|
||||
resources :users, only: [:index, :create, :destroy] do
|
||||
collection do
|
||||
get :confirm_block
|
||||
end
|
||||
member do
|
||||
get :confirm_unblock
|
||||
end
|
||||
end
|
||||
end
|
||||
namespace :muted do
|
||||
resources :users, only: [:index, :create, :destroy] do
|
||||
collection do
|
||||
get :confirm_mute
|
||||
end
|
||||
member do
|
||||
get :confirm_unmute
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#### WORKS ####
|
||||
|
||||
resources :works do
|
||||
collection do
|
||||
post :import
|
||||
get :search
|
||||
end
|
||||
member do
|
||||
get :preview
|
||||
post :post
|
||||
put :post_draft
|
||||
get :navigate
|
||||
get :edit_tags
|
||||
get :preview_tags
|
||||
patch :update_tags
|
||||
get :mark_for_later
|
||||
get :mark_as_read
|
||||
get :confirm_delete
|
||||
get :share
|
||||
end
|
||||
resources :bookmarks
|
||||
resources :chapters do
|
||||
collection do
|
||||
get :manage
|
||||
post :update_positions
|
||||
end
|
||||
member do
|
||||
get :preview
|
||||
post :post
|
||||
get :confirm_delete
|
||||
end
|
||||
resources :comments
|
||||
end
|
||||
resources :collections
|
||||
resources :collection_items
|
||||
resources :comments do
|
||||
member do
|
||||
put :approve
|
||||
put :reject
|
||||
end
|
||||
collection do
|
||||
get :unreviewed
|
||||
put :review_all
|
||||
end
|
||||
end
|
||||
resource :hit_count, controller: :hit_count, only: [:create]
|
||||
resources :kudos, only: [:index]
|
||||
resource :troubleshooting, controller: :troubleshooting, only: [:show, :update]
|
||||
end
|
||||
|
||||
resources :chapters do
|
||||
member do
|
||||
get :preview
|
||||
post :post
|
||||
end
|
||||
resources :comments
|
||||
end
|
||||
|
||||
resources :external_works do
|
||||
collection do
|
||||
get :fetch
|
||||
end
|
||||
resources :bookmarks
|
||||
resources :related_works
|
||||
end
|
||||
|
||||
resources :related_works
|
||||
resources :serial_works
|
||||
resources :series do
|
||||
member do
|
||||
get :confirm_delete
|
||||
get :manage
|
||||
post :update_positions
|
||||
end
|
||||
resources :bookmarks
|
||||
end
|
||||
|
||||
#### COLLECTIONS ####
|
||||
|
||||
resources :gifts, only: [:index] do
|
||||
member do
|
||||
post :toggle_rejected
|
||||
end
|
||||
end
|
||||
|
||||
resources :collections do
|
||||
collection do
|
||||
get :list_challenges
|
||||
get :list_ge_challenges
|
||||
get :list_pm_challenges
|
||||
end
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
resource :profile, controller: "collection_profile"
|
||||
resources :collections
|
||||
resources :works
|
||||
resources :gifts
|
||||
resources :bookmarks
|
||||
resources :media
|
||||
resources :fandoms
|
||||
resources :people
|
||||
resources :prompts
|
||||
resources :tags do
|
||||
resources :works
|
||||
end
|
||||
resources :participants, controller: "collection_participants", only: [:index, :update, :destroy] do
|
||||
collection do
|
||||
get :add
|
||||
get :join
|
||||
end
|
||||
end
|
||||
resources :items, controller: "collection_items" do
|
||||
collection do
|
||||
patch :update_multiple
|
||||
end
|
||||
end
|
||||
resources :signups, controller: "challenge_signups" do
|
||||
collection do
|
||||
get :summary
|
||||
end
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
end
|
||||
resources :assignments, controller: "challenge_assignments", only: [:index, :show] do
|
||||
collection do
|
||||
get :confirm_purge
|
||||
get :generate
|
||||
put :set
|
||||
post :purge
|
||||
get :send_out
|
||||
put :update_multiple
|
||||
get :default_all
|
||||
end
|
||||
member do
|
||||
get :default
|
||||
end
|
||||
end
|
||||
resources :claims, controller: "challenge_claims" do
|
||||
collection do
|
||||
patch :set
|
||||
get :purge
|
||||
end
|
||||
end
|
||||
resources :potential_matches do
|
||||
collection do
|
||||
get :generate
|
||||
get :cancel_generate
|
||||
get :regenerate_for_signup
|
||||
end
|
||||
end
|
||||
resources :requests, controller: "challenge_requests"
|
||||
# challenge types
|
||||
resource :gift_exchange, controller: "challenge/gift_exchange" do
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
end
|
||||
resource :prompt_meme, controller: "challenge/prompt_meme" do
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#### I18N ####
|
||||
|
||||
# should stay below the main works mapping
|
||||
resources :languages, except: [:show] do
|
||||
resources :works
|
||||
resources :admin_posts
|
||||
end
|
||||
get "/languages/:id", to: redirect("/languages/%{id}/works", status: 302)
|
||||
resources :locales, except: :destroy
|
||||
|
||||
#### API ####
|
||||
|
||||
namespace :api do
|
||||
namespace :v2 do
|
||||
resources :bookmarks, only: [:create], defaults: { format: :json }
|
||||
resources :works, only: [:create], defaults: { format: :json }
|
||||
post 'bookmarks/search', to: 'bookmarks#search'
|
||||
post 'works/search', to: 'works#search'
|
||||
end
|
||||
end
|
||||
|
||||
#### MISC ####
|
||||
|
||||
resources :comments do
|
||||
member do
|
||||
put :approve
|
||||
put :freeze
|
||||
put :hide
|
||||
put :reject
|
||||
put :review
|
||||
put :unfreeze
|
||||
put :unhide
|
||||
end
|
||||
collection do
|
||||
get :hide_comments
|
||||
get :show_comments
|
||||
get :add_comment_reply
|
||||
get :cancel_comment_reply
|
||||
get :cancel_comment_edit
|
||||
get :delete_comment
|
||||
get :cancel_comment_delete
|
||||
end
|
||||
resources :comments
|
||||
end
|
||||
resources :bookmarks do
|
||||
collection do
|
||||
get :search
|
||||
end
|
||||
member do
|
||||
get :confirm_delete
|
||||
get :share
|
||||
end
|
||||
resources :collection_items
|
||||
end
|
||||
|
||||
resources :kudos, only: [:create]
|
||||
|
||||
resources :skins do
|
||||
member do
|
||||
get :preview
|
||||
get :set
|
||||
get :confirm_delete
|
||||
end
|
||||
collection do
|
||||
get :unset
|
||||
end
|
||||
end
|
||||
resources :known_issues
|
||||
resources :archive_faqs, path: "faq" do
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
collection do
|
||||
get :manage
|
||||
post :update_positions
|
||||
end
|
||||
resources :questions do
|
||||
collection do
|
||||
get :manage
|
||||
post :update_positions
|
||||
end
|
||||
end
|
||||
end
|
||||
resources :wrangling_guidelines do
|
||||
member do
|
||||
get :confirm_delete
|
||||
end
|
||||
collection do
|
||||
get :manage
|
||||
post :update_positions
|
||||
end
|
||||
end
|
||||
|
||||
resource :redirect, controller: "redirect", only: [:show] do
|
||||
member do
|
||||
get :do_redirect
|
||||
end
|
||||
end
|
||||
|
||||
resources :abuse_reports, only: [:new, :create]
|
||||
resources :external_authors do
|
||||
resources :external_author_names
|
||||
end
|
||||
resources :orphans, only: [:index, :new, :create]
|
||||
|
||||
get 'search' => 'works#search'
|
||||
post 'support' => 'feedbacks#create', as: 'feedbacks'
|
||||
get 'support' => 'feedbacks#new', as: 'new_feedback_report'
|
||||
get "content" => "home#content"
|
||||
get "privacy" => "home#privacy"
|
||||
get "tos" => "home#tos"
|
||||
get "tos_faq" => "home#tos_faq"
|
||||
get 'unicorn_test' => 'home#unicorn_test'
|
||||
get 'dmca' => 'home#dmca'
|
||||
get 'diversity' => 'home#diversity'
|
||||
get 'site_map' => 'home#site_map'
|
||||
get 'site_pages' => 'home#site_pages'
|
||||
get 'first_login_help' => 'home#first_login_help'
|
||||
get 'token_dispenser' => 'home#token_dispenser'
|
||||
get 'delete_confirmation' => 'users#delete_confirmation'
|
||||
get 'activate/:id' => 'users#activate', as: 'activate'
|
||||
get 'devmode' => 'devmode#index'
|
||||
get 'donate' => 'home#donate'
|
||||
get 'lost_cookie' => 'home#lost_cookie'
|
||||
get 'about' => 'home#about'
|
||||
get 'menu/browse' => 'menu#browse'
|
||||
get 'menu/fandoms' => 'menu#fandoms'
|
||||
get 'menu/search' => 'menu#search'
|
||||
get 'menu/about' => 'menu#about'
|
||||
|
||||
# The priority is based upon order of creation:
|
||||
# first created -> highest priority.
|
||||
root to: "home#index"
|
||||
|
||||
# See how all your routes lay out with "rake routes"
|
||||
|
||||
# These are allowlisted routes that are proven to be used throughout the
|
||||
# application, which previously relied on a deprecated catch-all route definition
|
||||
# (`get ':controller(/:action(/:id(.:format)))'`) to work.
|
||||
#
|
||||
# They are generally not RESTful and in some cases are *almost* duplicates of
|
||||
# existing routes defined above, but due to how extensively they are used
|
||||
# throughout the application must exist until forms, controllers, and tests
|
||||
# can be refactored to not rely on their existence.
|
||||
#
|
||||
# Note written on August 1, 2017 during upgrade to Rails 5.1.
|
||||
get '/invite_requests/show' => 'invite_requests#show', as: :show_invite_request
|
||||
get '/user_invite_requests/update' => 'user_invite_requests#update'
|
||||
|
||||
patch '/admin/skins/update' => 'admin_skins#update', as: :update_admin_skin
|
||||
|
||||
get "/admin/admin_users/troubleshoot/:id" => "admin/admin_users#troubleshoot", as: :troubleshoot_admin_user
|
||||
|
||||
# TODO: rewrite the autocomplete controller to deal with the fact that
|
||||
# there are 21 different actions going on in there
|
||||
%w[
|
||||
pseud
|
||||
tag
|
||||
fandom
|
||||
character
|
||||
relationship
|
||||
freeform
|
||||
character_in_fandom
|
||||
relationship_in_fandom
|
||||
tags_in_sets
|
||||
associated_tags
|
||||
noncanonical_tag
|
||||
collection_fullname
|
||||
open_collection_names
|
||||
collection_parent_name
|
||||
external_work
|
||||
potential_offers
|
||||
potential_requests
|
||||
owned_tag_sets
|
||||
site_skins
|
||||
admin_posts
|
||||
admin_post_tags
|
||||
].each do |action|
|
||||
get "/autocomplete/#{action}" => "autocomplete##{action}"
|
||||
end
|
||||
get 'timeline', to: 'statuses#timeline', as: :timeline
|
||||
get '/challenges/no_collection' => 'challenges#no_collection'
|
||||
get '/challenges/no_challenge' => 'challenges#no_challenge'
|
||||
|
||||
get '/works/clean_work_search_params' => 'works#clean_work_search_params'
|
||||
get '/works/collected' => 'works#collected'
|
||||
get '/works/drafts' => 'works#drafts'
|
||||
|
||||
post '/works/edit_multiple/:id' => 'works#edit_multiple'
|
||||
post '/works/confirm_delete_multiple/:id' => 'works#confirm_delete_multiple'
|
||||
post '/works/delete_multiple/:id' => 'works#delete_multiple'
|
||||
put '/works/update_multiple' => 'works#update_multiple'
|
||||
end
|
||||
Loading…
Reference in a new issue