Rails.application.routes.draw do
  require 'sidekiq/web'

  devise_for :users

  namespace :auth do
    mount_devise_token_auth_for 'User', skip: [:omniauth_callbacks]
  end

  namespace :management do
    root 'welcome#index'

    resources :statistics do
      collection do
        get :users
        get :collections
        get :accesses
        get :learning_objects
      end
    end

    resources :users do
      resource :admin, only: [:create, :destroy]
      resource :curator, only: [:create, :destroy]

      collection do
        get :curators
        get :admins
      end
    end
    resources :highlights
    resources :carousels

    mount Sidekiq::Web, at: '/sidekiq'
  end

  root 'welcome#index'

  resources :learning_objects do
    member do
      post :like
      post :bookmarks
    end
  end

  resources :institutions
  resources :collections do
    member do
      post '/learning_object/:learning_object_id', as: :add_collection_learning_object, action: :add_learning_object
    end
  end

  resources :subjects, only: [:index, :show]
  resources :complaints, only: [:create, :destroy]

  resources :users, only: [:show] do
    collection do
      get :me
    end
  end

  get '/search' => 'search#index', as: 'search'
  get '/search/fetch' => 'search#fetch', as: 'search_fetch'
  get '/autocomplete' => 'search#autocomplete'

  get '/subject/:id' => 'welcome#subject', as:'subject_index'
  get '/collection' => 'welcome#collection'
  get '/add_file' => 'welcome#add_file'
  get '/signup' => 'welcome#signup'
  get '/follow_collection' => 'welcome#follow_collection'
end