# frozen_string_literal: true Rails.application.routes.draw do get "up" => "rails/health#show", as: :rails_health_check resources :logos, only: :show constraints subdomain: "mc" do mount MissionControl::Jobs::Engine, at: "/jobs" get "sessions/:tenant" => "mission_control/sessions#show", as: :mc_login end constraints subdomain: "query" do scope module: "query", as: "query", defaults: { format: :json } do root to: "catalog#show" post "tickets/search" => "ticket_searches#create" get "organizations" => "organizations#index" get "bank_connections" => "bank_connections#index" scope ":tenant" do resource :schema, only: :show get "schema/:table" => "schemas#show" resource :models, only: :show resource :sql, only: :create resource :explain, only: :create resources :blobs, only: :show end end end constraints subdomain: "inbound" do scope module: "inbound", as: "inbound" do namespace :postmark do resources :webhooks, only: :create end end end constraints subdomain: "admin" do get "favicon" => "favicons#show" get "favicon.ico" => "favicons#show" resources :sessions, only: %i[show create] get "/login" => "sessions#new", as: :login delete "/logout" => "sessions#destroy", as: :logout resources :demo_registrations, only: %i[new create], controller: "demo/registrations", path: "demo" resources :email_suppressions, only: :destroy get "search" => "search#index", as: :search get "activity_participations/calendar" => "activity_participations_calendar#show", defaults: { format: :ics } get "billing/:year" => "billings#show", as: :billing get "billing/snapshots/:id" => "billing_snapshots#show", as: :billing_snapshot resource :ebics_initialization_letter, only: :show, controller: :ebics_onboarding_letters get "settings/:section/edit" => "organizations#edit", as: :edit_organization get "settings/form_details_preview" => "organizations#form_details_preview", as: :form_details_preview_organization resource :organization, path: "settings", only: %i[show update] get "deliveries/next" => "next_delivery#next" get "handbook/search" => "handbook_search#show", as: :handbook_search get "handbook/:id" => "handbook#index", as: :handbook_page get "analytics/:id" => "analytics#index", as: :analytics_page get "support", to: redirect("/support_tickets/new", status: 302), as: :support namespace :embeds do namespace :maps do get "depots" => "depots#show" end end ActiveAdmin.routes(self) namespace :api do namespace :v1 do resources :members, only: :create resource :configuration, only: :show get "basket_contents/current" => "basket_contents#index" resources :deliveries, only: [] do resources :baskets, only: :index end end end namespace :postmark do resources :webhooks, only: :create end end scope module: "members", as: "members" do constraints subdomain: Organization::MEMBERS_SUBDOMAINS do get "favicon" => "/favicons#show" get "favicon.ico" => "/favicons#show" resources :sessions, only: %i[show create] get "/login" => "sessions#new", as: :login delete "/logout" => "sessions#destroy", as: :logout get "newsletters.atom", to: "newsletter_feeds#index", as: :newsletter_feed, defaults: { format: :atom } resources :newsletter_deliveries, only: [ :index, :show ], path: "newsletters" get "/newsletters/unsubscribe/:token" => "newsletter_subscriptions#destroy", as: "unsubscribe_newsletter" # List-Unsubscribe-Post post "/newsletters/unsubscribe/:token/post" => "newsletter_subscriptions#destroy", as: "unsubscribe_newsletter_post" post "/newsletters/subscribe/:token" => "newsletter_subscriptions#create", as: "subscribe_newsletter" get "/membership", to: redirect("/memberships") resources :memberships, only: %i[index edit update] resources :baskets, only: %i[edit update] do resource :forced_delivery, only: :create resource :basket_shifts, only: %i[new create], path: "shift", path_names: { new: "" } resource :home_delivery_address, only: :new end resources :home_delivery_addresses, only: %i[create edit update destroy] scope :membership do resource :renewal, only: %i[new create], as: "membership_renewal", controller: "membership_renewals" get "renew(:format)" => "membership_renewals#new", as: "renew_membership", decision: "renew" get ":decision" => "membership_renewals#new" resource :trial_cancelation, only: %i[new create], path: "trial/cancelation" end namespace :bidding_round do resource :pledge, only: %i[new create], path_names: { new: "" } end resources :deliveries, only: :index resources :activities, only: :index resources :activity_participations, only: %i[index create destroy] namespace :shop do get "/" => "products#index" get "/next" => "products#index", as: :next, next: true get "/special/:special_delivery_date" => "products#index", as: :special_delivery resources :orders, only: %i[show update destroy] do post "confirm", on: :member post "unconfirm", on: :member resources :order_items, only: %i[create] end end resources :absences, only: %i[index create destroy] get "billing" => "billing#index" resource :member, only: %i[new show create], path: "" get ":page" => "public_pages#show", as: :public_page, constraints: lambda { |req| Members::PublicPagesController::ALLOWED_PAGES.include?(req.params[:page]) } resource :account, only: %i[show edit update] do resource :deletion_request, only: %i[new create], path: "delete", path_names: { new: "" } resource :deletion_confirmation, only: %i[new create], path: "delete/confirm", path_names: { new: "" } end resource :sepa_mandate, only: %i[new create destroy] resource :info, only: :show resource :contact_sharing, only: %i[show create] resource :email_suppression, only: :destroy resource :calendar, only: :show, defaults: { format: :ics } end end end