Ctrl K
ComunidadGuías…

config/routes.rb

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 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