foodsoft/config/routes.rb
2023-11-17 15:53:32 +01:00

324 lines
9.1 KiB
Ruby

# rubocop:disable Metrics/BlockLength
Rails.application.routes.draw do
mount Rswag::Ui::Engine => '/api-docs'
mount Rswag::Api::Engine => '/api-docs'
get 'order_comments/new'
get 'comments/new'
get 'sessions/new'
root to: 'sessions#redirect_to_foodcoop', as: nil
scope '/:foodcoop' do
use_doorkeeper
# Root path
root to: 'home#index'
########### Sessions
get '/login' => 'sessions#new', as: 'login'
get '/logout' => 'sessions#destroy', as: 'logout'
get '/login/forgot_password' => 'login#forgot_password', as: :forgot_password
post '/login/reset_password' => 'login#reset_password', as: :reset_password
get '/login/new_password' => 'login#new_password', as: :new_password
patch '/login/update_password' => 'login#update_password', as: :update_password
match '/login/accept_invitation/:token' => 'login#accept_invitation', as: :accept_invitation, via: %i[get post]
resources :sessions, only: %i[new create destroy]
get '/foodcoop.css' => 'styles#foodcoop', as: 'foodcoop_css'
########### User specific
get '/home/profile', as: 'my_profile'
get '/home/reference_calculator'
patch '/home/update_profile', as: 'update_profile'
get '/home/ordergroup' => 'home#ordergroup', as: 'my_ordergroup'
post '/home/cancel_membership' => 'home#cancel_membership', as: 'cancel_membership'
############ Orders, ordering
resources :orders do
member do
post :finish
post :add_comment
post :send_result_to_supplier
get :receive
post :receive
get :render_modal
get :receive_on_order_article_create
get :receive_on_order_article_update
get :collective_direct_debit
end
resources :order_articles
end
resources :pickups, only: [:index] do
post :document, on: :collection
end
resources :group_orders do
get :archive, on: :collection
end
resources :group_order_articles
resources :order_comments, only: %i[new create]
############ Foodcoop orga
resources :invites, only: %i[new create]
resources :tasks do
collection do
get :user
get :archive
get :workgroup
end
member do
post :accept
post :reject
post :set_done
end
end
namespace :foodcoop do
root to: 'users#index'
resources :users, only: [:index]
resources :ordergroups, only: [:index]
resources :workgroups, only: %i[index edit update]
end
########### Article management
resources :stock_takings do
collection do
get :new_on_stock_article_create
end
end
resources :stock_articles, controller: 'stockit' do
get :copy
collection do
get :derive
get :index_on_stock_article_create
get :index_on_stock_article_update
get :show_on_stock_article_update
end
end
resources :suppliers do
get :shared_suppliers, on: :collection
resources :deliveries do
collection do
post :add_stock_change
get :form_on_stock_article_create
get :form_on_stock_article_update
end
end
resources :articles do
get :copy
collection do
post :update_selected
get :edit_all
post :update_all
get :upload
post :parse_upload
post :create_from_upload
get :shared
get :import
post :sync
post :update_synchronized
end
end
end
post 'finance/group_order_invoice', to: 'group_order_invoices#create_multiple'
get 'orders/:order_id/group_order_invoices/download_all', to: 'group_order_invoices#download_all', as: 'download_all_group_order_invoices'
resources :group_order_invoices do
member do
patch :select_sepa_sequence_type
patch :toggle_payed
patch :toggle_sepa_downloaded
end
collection do
patch :select_all_sepa_sequence_type
patch :toggle_all_sepa_downloaded
patch :toggle_all_payed
end
end
resources :article_categories
########### Finance
namespace :finance do
root to: 'base#index'
resources :order, controller: 'balancing', path: 'balancing' do
member do
get :update_summary
get :edit_note
put :update_note
get :edit_transport
put :update_transport
get :confirm
post :close
patch :close_direct
get :new_on_order_article_create
get :new_on_order_article_update
get :collective_direct_debit
end
post :close_all_direct_with_invoice, on: :collection
end
resources :invoices do
get :attachment
get :form_on_supplier_id_change, on: :collection
get :unpaid, on: :collection
end
resources :links, controller: 'financial_links', only: %i[create show] do
collection do
get :incomplete
end
member do
get :index_bank_transaction
put 'bank_transactions/:bank_transaction', action: 'add_bank_transaction', as: 'add_bank_transaction'
delete 'bank_transactions/:bank_transaction', action: 'remove_bank_transaction', as: 'remove_bank_transaction'
get :index_financial_transaction
put 'financial_transactions/:financial_transaction', action: 'add_financial_transaction',
as: 'add_financial_transaction'
delete 'financial_transactions/:financial_transaction', action: 'remove_financial_transaction',
as: 'remove_financial_transaction'
get :index_invoice
put 'invoices/:invoice', action: 'add_invoice', as: 'add_invoice'
delete 'invoices/:invoice', action: 'remove_invoice', as: 'remove_invoice'
get :new_financial_transaction
post :create_financial_transaction
end
end
resources :ordergroups, only: [:index] do
resources :financial_transactions, as: :transactions
end
resources :financial_transactions, as: :foodcoop_financial_transactions, path: 'foodcoop/financial_transactions',
only: %i[index new create]
get :transactions, controller: :financial_transactions, action: :index_collection
delete 'transactions/:id', controller: :financial_transactions, action: :destroy, as: :transaction
get 'transactions/new_collection' => 'financial_transactions#new_collection', as: 'new_transaction_collection'
post 'transactions/create_collection' => 'financial_transactions#create_collection',
as: 'create_transaction_collection'
resources :bank_accounts, only: [:index] do
member do
get :assign_unlinked_transactions
get :import
post :import
end
resources :bank_transactions, as: :transactions
end
resources :bank_transactions, only: %i[index show]
end
########### Administration
namespace :admin do
root to: 'base#index'
resources :finances, only: [:index] do
get :update_bank_accounts, on: :collection
get :update_bank_gateways, on: :collection
get :update_transaction_types, on: :collection
get :update_supplier_categories, on: :collection
end
resources :bank_accounts
resources :bank_gateways
resources :financial_transaction_classes
resources :financial_transaction_types
resources :supplier_categories
resources :users do
post :restore, on: :member
post :sudo, on: :member
end
resources :workgroups do
get :memberships, on: :member
end
resources :ordergroups do
get :memberships, on: :member
end
resources :mail_delivery_status, only: %i[index show destroy] do
delete :index, on: :collection, action: :destroy_all
end
resource :config, only: %i[show update] do
get :list
end
end
############## API
namespace :api do
namespace :v1 do
resource :config, only: [:show]
resource :navigation, only: [:show]
namespace :user do
root to: 'users#show'
get :financial_overview, to: 'ordergroup#financial_overview'
resources :financial_transactions, only: %i[index show create]
resources :group_order_articles
end
resources :financial_transaction_classes, only: %i[index show]
resources :financial_transaction_types, only: %i[index show]
resources :financial_transactions, only: %i[index show]
resources :orders, only: %i[index show]
resources :order_articles, only: %i[index show]
resources :group_order_articles
resources :article_categories, only: %i[index show]
end
end
############## Feedback
resource :feedback, only: %i[new create], controller: 'feedback'
############## The rest
resources :users, only: [:index]
end # End of /:foodcoop scope
end
# rubocop:enable Metrics/BlockLength