Files
fizzy/config/routes.rb
T
Stanko Krtalić eceb6c9b43 Add self-service account deletion (#2246)
* 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
2026-01-12 14:21:05 +01:00

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