mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
We were hiding that before because the API is not officially released yet but that's actually quite annoying. It's very conenient to have the UI on production and be able to try out endpoints.
111 lines
2.7 KiB
Ruby
111 lines
2.7 KiB
Ruby
Openfoodnetwork::Application.routes.draw do
|
|
mount Rswag::Ui::Engine => '/api-docs'
|
|
mount Rswag::Api::Engine => '/api-docs'
|
|
|
|
namespace :api do
|
|
|
|
# Mount DFC API endpoints
|
|
#
|
|
# We're using the DFC Connector which produces DFC v1.7 data but the
|
|
# DFC prototype is still pointing to the old URL. We keep it for
|
|
# testing.
|
|
mount DfcProvider::Engine, at: '/dfc-v1.6/', as: :legacy_dfc_provider_engine
|
|
|
|
# The DFC API version depends on the version of the
|
|
# datafoodconsortium-connector gem.
|
|
mount DfcProvider::Engine, at: '/dfc-v1.7/'
|
|
|
|
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
|
|
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, :only => [:index]
|
|
|
|
resources :taxonomies do
|
|
member do
|
|
get :jstree
|
|
end
|
|
resources :taxons do
|
|
member do
|
|
get :jstree
|
|
end
|
|
end
|
|
end
|
|
|
|
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
|