eceb6c9b43
* Add self-service account deletion * Disable access to cancelled accounts & implement Stripe interactions * Add tests * Fix failing tests * Remove cancelled accounts from lists * Fix incorrect redirect * Use _path instead of _url for consistency * Don't track how far the inicieration job got We still want the step tracking so that the job can be interrupted. But, since the scope is idempotent, we don't need to track how far it got. * Specify the exact time when the data will be deleted * Fix crash due to unadvancable cursor * Rename up_for_incineration to due_for_incineration * Regenrate the schema * Fix incorrect path check * Migrate the SQLite schema * Only show the cancel button on cancellable accounts * Check that a subscirption method exists before calling it * Ignore job failures due to missing records when an account gets deleted * Skip sending notifications on cancelled accounts * Use collbacks to integrate * Add a blank line between queue_as and discard_on * Break checks into methods * Inline methods * Rename Account::IncinerateJob * Run migrations * Migrate SQLite
246 lines
5.4 KiB
Ruby
246 lines
5.4 KiB
Ruby
Rails.application.routes.draw do
|
|
root "events#index"
|
|
|
|
namespace :account do
|
|
resource :cancellation, only: [ :create ]
|
|
resource :entropy
|
|
resource :join_code
|
|
resource :settings
|
|
resources :exports, only: [ :create, :show ]
|
|
end
|
|
|
|
resources :users do
|
|
scope module: :users do
|
|
resource :avatar
|
|
resource :role
|
|
resource :events
|
|
|
|
resources :push_subscriptions
|
|
|
|
resources :email_addresses, param: :token do
|
|
resource :confirmation, module: :email_addresses
|
|
end
|
|
end
|
|
end
|
|
|
|
resources :boards do
|
|
scope module: :boards do
|
|
resource :subscriptions
|
|
resource :involvement
|
|
resource :publication
|
|
resource :entropy
|
|
|
|
namespace :columns do
|
|
resource :not_now
|
|
resource :stream
|
|
resource :closed
|
|
end
|
|
|
|
resources :columns
|
|
end
|
|
|
|
resources :cards, only: :create
|
|
|
|
resources :webhooks do
|
|
scope module: :webhooks do
|
|
resource :activation, only: :create
|
|
end
|
|
end
|
|
end
|
|
|
|
resources :columns, only: [] do
|
|
resource :left_position, module: :columns
|
|
resource :right_position, module: :columns
|
|
end
|
|
|
|
namespace :columns do
|
|
resources :cards do
|
|
scope module: :cards do
|
|
namespace :drops do
|
|
resource :not_now
|
|
resource :stream
|
|
resource :closure
|
|
resource :column
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
namespace :cards do
|
|
resources :previews
|
|
end
|
|
|
|
resources :cards do
|
|
scope module: :cards do
|
|
resource :draft, only: :show
|
|
resource :board
|
|
resource :closure
|
|
resource :column
|
|
resource :goldness
|
|
resource :image
|
|
resource :not_now
|
|
resource :pin
|
|
resource :publish
|
|
resource :reading
|
|
resource :triage
|
|
resource :watch
|
|
resource :reading
|
|
|
|
resources :assignments
|
|
resources :steps
|
|
resources :taggings
|
|
|
|
resources :comments do
|
|
resources :reactions, module: :comments
|
|
end
|
|
end
|
|
end
|
|
|
|
resources :tags, only: :index
|
|
|
|
namespace :notifications do
|
|
resource :settings
|
|
resource :unsubscribe
|
|
end
|
|
|
|
resources :notifications do
|
|
scope module: :notifications do
|
|
get "tray", to: "trays#show", on: :collection
|
|
|
|
resource :reading
|
|
collection do
|
|
resource :bulk_reading, only: :create
|
|
end
|
|
end
|
|
end
|
|
|
|
resource :search
|
|
namespace :searches do
|
|
resources :queries
|
|
end
|
|
|
|
resources :filters do
|
|
scope module: :filters do
|
|
collection do
|
|
resource :settings_refresh, only: :create
|
|
end
|
|
end
|
|
end
|
|
|
|
resources :events, only: :index
|
|
namespace :events do
|
|
resources :days
|
|
namespace :day_timeline do
|
|
resources :columns, only: :show
|
|
end
|
|
end
|
|
|
|
resources :qr_codes
|
|
|
|
get "join/:code", to: "join_codes#new", as: :join
|
|
post "join/:code", to: "join_codes#create"
|
|
|
|
namespace :users do
|
|
resources :joins
|
|
resources :verifications, only: %i[ new create ]
|
|
end
|
|
|
|
resource :session do
|
|
scope module: :sessions do
|
|
resources :transfers
|
|
resource :magic_link
|
|
resource :menu
|
|
end
|
|
end
|
|
|
|
get "/signup", to: redirect("/signup/new")
|
|
|
|
resource :signup, only: %i[ new create ] do
|
|
collection do
|
|
scope module: :signups, as: :signup do
|
|
resource :completion, only: %i[ new create ]
|
|
end
|
|
end
|
|
end
|
|
|
|
resource :landing
|
|
|
|
namespace :my do
|
|
resource :identity, only: :show
|
|
resources :access_tokens
|
|
resources :pins
|
|
resource :timezone
|
|
resource :menu
|
|
end
|
|
|
|
namespace :prompts do
|
|
resources :cards
|
|
resources :tags
|
|
resources :users
|
|
|
|
resources :boards do
|
|
scope module: :boards do
|
|
resources :users
|
|
end
|
|
end
|
|
end
|
|
|
|
namespace :public do
|
|
resources :boards do
|
|
scope module: :boards do
|
|
namespace :columns do
|
|
resource :not_now, only: :show
|
|
resource :stream, only: :show
|
|
resource :closed, only: :show
|
|
end
|
|
|
|
resources :columns, only: :show
|
|
end
|
|
|
|
resources :cards, only: :show
|
|
end
|
|
end
|
|
|
|
direct :published_board do |board, options|
|
|
route_for :public_board, board.publication.key
|
|
end
|
|
|
|
direct :published_card do |card, options|
|
|
route_for :public_board_card, card.board.publication.key, card
|
|
end
|
|
|
|
resolve "Comment" do |comment, options|
|
|
options[:anchor] = ActionView::RecordIdentifier.dom_id(comment)
|
|
route_for :card, comment.card, options
|
|
end
|
|
|
|
resolve "Mention" do |mention, options|
|
|
polymorphic_url(mention.source, options)
|
|
end
|
|
|
|
resolve "Notification" do |notification, options|
|
|
polymorphic_url(notification.notifiable_target, options)
|
|
end
|
|
|
|
resolve "Event" do |event, options|
|
|
polymorphic_url(event.eventable, options)
|
|
end
|
|
|
|
resolve "Webhook" do |webhook, options|
|
|
route_for :board_webhook, webhook.board, webhook, options
|
|
end
|
|
|
|
# Support for legacy URLs
|
|
get "/collections/:collection_id/cards/:id", to: redirect { |params, request| "#{request.script_name}/cards/#{params[:id]}" }
|
|
get "/collections/:id", to: redirect { |params, request| "#{request.script_name}/boards/#{params[:id]}" }
|
|
get "/public/collections/:id", to: redirect { |params, request| "#{request.script_name}/public/boards/#{params[:id]}" }
|
|
|
|
get "up", to: "rails/health#show", as: :rails_health_check
|
|
get "manifest" => "rails/pwa#manifest", as: :pwa_manifest
|
|
get "service-worker" => "pwa#service_worker"
|
|
|
|
namespace :admin do
|
|
mount MissionControl::Jobs::Engine, at: "/jobs"
|
|
end
|
|
end
|