Openfoodnetwork::Application.routes.draw do mount Rswag::Ui::Engine => '/api-docs' mount Rswag::Api::Engine => '/api-docs' namespace :api do # Mount DFC API endpoints # # The DFC prototype is still pointing to the old URL though: mount DfcProvider::Engine, at: '/dfc-v1.6/', as: :legacy_dfc_provider_engine mount DfcProvider::Engine, at: '/dfc-v1.7/', as: :v1_7_dfc_provider_engine # Latest implemented version: mount DfcProvider::Engine, at: '/dfc/' namespace :v0 do resources :products do collection do get :bulk_products get :overridable end post :clone resources :variants end resources :variants, :only => [:index] resources :orders, only: [:index, :show, :update] do member do put :capture put :ship end resources :shipments, :only => [:create, :update] do member do put :ready put :ship put :add put :remove end end end resources :enterprises do post :update_image, on: :member resource :logo, only: [:destroy] resource :promo_image, only: [:destroy] resource :terms_and_conditions, only: [:destroy] end resources :shops, only: [:show] do collection do get :closed_shops end end resources :order_cycles do get :products, on: :member get :taxons, on: :member get :properties, on: :member get :producer_properties, on: :member end resources :exchanges, only: [:show], to: 'exchange_products#index' do get :products, to: 'exchange_products#index' end resource :status do get :job_queue end resources :customers, only: [:index, :update] resources :enterprise_fees, only: [:destroy] post '/product_images/:product_id', to: 'product_images#update_product_image' resources :states, :only => [:index, :show] resources :taxons, except: %i[show edit] get '/reports/:report_type(/:report_subtype)', to: 'reports#show', constraints: lambda { |_| OpenFoodNetwork::FeatureToggle.enabled?(:api_reports) } end namespace :v1 do resources :customers resources :enterprises do resources :customers, only: :index end end match '*path', to: redirect(path: "/api/v0/%{path}"), via: :all, constraints: { path: /(?!v[0-9]).+/ } end end