Skip to content
Snippets Groups Projects
Forked from PortalMEC / portalmec
2110 commits behind the upstream repository.
routes.rb 3.16 KiB
Rails.application.routes.draw do
  require 'sidekiq/web'

  devise_for :users,:controllers => { :omniauth_callbacks => "callbacks" }

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

  namespace :management do
    root 'welcome#index'
    resources :complaints do
      post '/suspend_object/:object_id', as: :suspend_object, action: :suspend_object
    end
    resources :institutions do
      member do
        post '/user/:user_id', as: :add_user, action: :add_user
        delete '/user/:user_id', as: :remove_user, action: :remove_user
      end
    end

    resources :complaint_reasons
    resources :highlights
    resources :carousels
    resources :scores, :score_user_categories, :user_categories

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

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

      member do
        post :change_roles
      end

      collection do
        get :curators
        get :admins
      end
    end

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

  root 'welcome#index'

  resource :feedback, only: [:create, :new] do
    get :new_bug
    post :report_bug
  end

  resources :subjects, only: [:index, :show]
  resource :complaints, only: ['create']

  resources :institutions do
    member do
      get :users
    end
  end

  resources :learning_objects do
    get :reviews, to: 'reviews#list', as: 'reviews'

    member do
      post :like
      get :collections
      get :upload
      get :download
    end
  end

  # file upload routes
  resource :chunk, only: [:create, :show]

  get '/collections/me' => 'collections#me', as: 'collections_me'
  resources :collections do
    get :reviews, to: 'reviews#list', as: 'reviews'

    member do
      # collection list
      get :list

      # change privacy
      post :change_privacy

      # add/remove a learning object for some collection
      post '/learning_objects/:learning_objects_ids', as: :add_learning_object, action: :add_learning_object
      delete '/learning_objects/:learning_objects_ids', as: :remove_learning_object, action: :remove_learning_object
    end
  end

  resources :reviews, except: :index do
    member do
      post :rate
    end
  end

  get '/bookmarks' => 'bookmarks#show', as: 'bookmark'
  post '/bookmarks/:type/:id' => 'bookmarks#add_object', as: :bookmark_add
  delete '/bookmarks/:type/:id' => 'bookmarks#remove_object', as: :bookmark_remove

  get '/users/list' => 'users#list', as: :list_all_users
  resources :users, only: [:show] do
    collection do
      get :me
    end
  end

  get '/about' => 'about#index', as: 'about'

  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 '/add_file' => 'welcome#add_file'
  get '/signup' => 'welcome#signup'
  get '/follow_collection' => 'welcome#follow_collection'
  get '/file_outside_user' => 'welcome#file_outside_user'
end