78 lines
2.2 KiB
Ruby
78 lines
2.2 KiB
Ruby
Rails.application.routes.draw do
|
|
root "books#index"
|
|
|
|
resource :first_run, only: %i[ show create ]
|
|
|
|
resource :session, only: %i[ new create destroy ] do
|
|
scope module: "sessions" do
|
|
resources :transfers, only: %i[ show update ]
|
|
end
|
|
end
|
|
|
|
get "join/:join_code", to: "users#new", as: :join
|
|
post "join/:join_code", to: "users#create"
|
|
|
|
resource :account do
|
|
scope module: "accounts" do
|
|
resource :join_code, only: :create
|
|
resource :custom_styles, only: %i[ edit update ]
|
|
end
|
|
end
|
|
|
|
resources :books, except: %i[ index show ] do
|
|
resource :publication, controller: "books/publications", only: %i[ show edit update ]
|
|
resource :bookmark, controller: "books/bookmarks", only: :show
|
|
|
|
scope module: "books" do
|
|
namespace :leaves do
|
|
resources :moves, only: :create
|
|
end
|
|
end
|
|
|
|
resources :sections
|
|
resources :pictures
|
|
resources :pages
|
|
end
|
|
|
|
get "/:id/:slug", to: "books#show", constraints: { id: /\d+/ }, as: :slugged_book
|
|
get "/:book_id/:book_slug/:id/:slug", to: "leafables#show", constraints: { book_id: /\d+/, id: /\d+/ }, as: :slugged_leafable
|
|
|
|
direct :book_slug do |book, options|
|
|
route_for :slugged_book, book, book.slug, options
|
|
end
|
|
|
|
direct :leafable_slug do |leaf, options|
|
|
route_for :slugged_leafable, leaf.book, leaf.book.slug, leaf, leaf.slug, options
|
|
end
|
|
|
|
resources :pages, only: [] do
|
|
scope module: "pages" do
|
|
resources :edits, only: :show
|
|
end
|
|
end
|
|
|
|
resources :qr_code, only: :show
|
|
resources :users do
|
|
scope module: "users" do
|
|
resource :profile
|
|
end
|
|
end
|
|
|
|
direct :leafable do |leaf, options|
|
|
route_for "book_#{leaf.leafable_name}", leaf.book, leaf, options
|
|
end
|
|
|
|
direct :edit_leafable do |leaf, options|
|
|
route_for "edit_book_#{leaf.leafable_name}", leaf.book, leaf, options
|
|
end
|
|
|
|
namespace :action_text, path: nil do
|
|
get "/u/*slug" => "markdown/uploads#show", as: :markdown_upload
|
|
post "/uploads" => "markdown/uploads#create", as: :markdown_uploads
|
|
end
|
|
|
|
get "up" => "rails/health#show", as: :rails_health_check
|
|
get "service-worker" => "rails/pwa#service_worker", as: :pwa_service_worker
|
|
get "manifest" => "rails/pwa#manifest", as: :pwa_manifest
|
|
end
|