Files
puzzle-scoreboard/config/routes.rb
sto 2c87a5b63c
All checks were successful
CI / scan_ruby (push) Successful in 19s
CI / scan_js (push) Successful in 13s
CI / lint (push) Successful in 14s
CI / test (push) Successful in 38s
Add url helpers & specs for offline participation forms
#5
2025-12-10 15:12:19 +01:00

85 lines
3.5 KiB
Ruby

Rails.application.routes.draw do
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
# Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
# Can be used by load balancers and uptime monitors to verify that the app is live.
get "up" => "rails/health#show", as: :rails_health_check
# Defines the root path route ("/")
root "contests#index"
resources :contests do
get "settings/general", to: "contests#settings_general_edit"
patch "settings/general", to: "contests#settings_general_update"
get "settings/public", to: "contests#settings_public_edit"
patch "settings/public", to: "contests#settings_public_update"
get "settings/onsite", to: "contests#settings_onsite_edit"
patch "settings/onsite", to: "contests#settings_onsite_update"
get "settings/online", to: "contests#settings_online_edit"
patch "settings/online", to: "contests#settings_online_update"
get "settings/categories", to: "contests#settings_categories_edit"
get "stopwatch", to: "contests#stopwatch"
post "stopwatch_continue", to: "contests#stopwatch_continue"
post "stopwatch_pause", to: "contests#stopwatch_pause"
post "stopwatch_reset", to: "contests#stopwatch_reset"
post "stopwatch_start", to: "contests#stopwatch_start"
resources :categories, only: [ :create, :destroy ]
resources :completions
resources :contestants
resources :puzzles
resources :messages, only: [ :destroy, :index ] do
get "convert", to: "messages#convert"
end
get "import", to: "contestants#import"
post "import", to: "contestants#upload_csv"
get "import/:id", to: "contestants#convert_csv"
post "import/:id", to: "contestants#finalize_import"
get "export", to: "contestants#export"
get "generate_qrcodes", to: "contestants#generate_qrcodes"
get "generate_qrcodes_pdf", to: "contestants#generate_qrcodes_pdf"
end
resources :passwords, param: :token
resource :session
resources :users do
patch "password", to: "users#change_password"
end
options "connect", to: "messages#cors_preflight_check"
options "message", to: "messages#cors_preflight_check"
post "connect", to: "messages#connect"
post "message", to: "messages#create"
post "regenerate_qrcodes", to: "users#regenerate_qrcodes"
post "update_contestants", to: "users#update_contestants"
get "public/:id", to: "contests#scoreboard"
get "public/:id/offline", to: "contests#offline_new"
post "public/:id/offline", to: "contests#offline_create"
get "public/:id/offline/:token", to: "contests#offline_edit"
patch "public/:id/offline/:token", to: "contests#offline_update"
get "public/:id/offline/:token/completed", to: "contests#offline_completed"
get "public/p/:contestant_id", to: "contestants#get_public_completion"
post "public/p/:contestant_id", to: "contestants#post_public_completion"
get "public/p/:contestant_id/updated", to: "contestants#public_completion_updated"
direct :direct_test do
"https://lol.com"
end
direct :public_scoreboard do |contest|
"/public/#{contest.friendly_id}/public"
end
direct :offline_form do |contest|
"/public/#{contest.friendly_id}/offline"
end
direct :offline_form_edit do |contest, offline|
"/public/#{contest.friendly_id}/offline/#{offline.generate_token_for(:token)}"
end
direct :offline_form_completed do |contest, offline|
"/public/#{contest.friendly_id}/offline/#{offline.generate_token_for(:token)}/completed"
end
end