Rails.application.routes.draw do
  devise_for :users
  require 'sidekiq/web'

  concern :followable do
    member do
      post :follow
      delete :unfollow
    end
  end

  concern :sociable do

    member do
      post :like
      delete :unlike
    end
  end

  concern :reviewable do
    resources :reviews do
      member do
        post :rate
      end
    end
  end

  # devise_for :users, :controllers => { :omniauth_callbacks => "callbacks" }
  namespace :v1 do
    mount_devise_token_auth_for 'User', skip: [:omniauth_callbacks], at: :auth

    resources :users, concerns: :followable
    resources :collections, concerns: [:followable, :sociable, :reviewable]
    resources :learning_objects, concerns: [:sociable, :reviewable]
    resources :institutions do
      member do
        get :users, to: 'institutions#users'
      end
    end
    resources :scores, only: [:index, :update]

  end

end