metamaps--metamaps/config/routes.rb

150 lines
4.2 KiB
Ruby

# frozen_string_literal: true
Metamaps::Application.routes.draw do
use_doorkeeper
mount ActionCable.server => '/cable'
root to: 'main#home', via: :get
get 'request', to: 'main#requestinvite', as: :request
namespace :explore do
get 'active'
get 'featured'
get 'mine'
get 'shared'
get 'starred'
get 'mapper/:id', action: 'mapper'
end
get :explore, to: redirect('/')
resources :maps, except: %i[index edit] do
member do
get :conversation
get :export
post 'events/:event', action: :events
get :contains
get :request_access,
to: 'access#request_access'
get 'approve_access/:request_id',
to: 'access#approve_access',
as: :approve_access
get 'deny_access/:request_id',
to: 'access#deny_access',
as: :deny_access
post :access_request,
to: 'access#access_request',
default: { format: :json }
post 'approve_access/:request_id',
to: 'access#approve_access_post',
as: :approve_access_post,
default: { format: :json }
post 'deny_access/:request_id',
to: 'access#deny_access_post',
as: :deny_access_post,
default: { format: :json }
post :access, to: 'access#access', default: { format: :json }
post :star, to: 'stars#create', default: { format: :json }
post :unstar, to: 'stars#destroy', default: { format: :json }
post :follow, default: { format: :json }
post :unfollow, default: { format: :json }
get :unfollow_from_email
end
end
resources :mappings, except: %i[index new edit]
resources :messages, only: %i[show create update destroy]
resources :notifications, only: %i[index show] do
collection do
get :unsubscribe
end
member do
put :mark_read
put :mark_unread
end
end
resources :metacode_sets, except: [:show]
resources :metacodes, except: [:destroy]
get 'metacodes/:name', to: 'metacodes#show'
namespace :search do
get :topics
get :maps
get :mappers
get :synapses
end
resources :synapses, except: %i[index new edit]
resources :topics, except: %i[index new edit] do
member do
get :network
get :relative_numbers
get :relatives
post :follow, default: { format: :json }
post :unfollow, default: { format: :json }
get :unfollow_from_email
end
collection do
get :autocomplete_topic
end
end
resources :tokens, only: [:new]
devise_for :users, skip: :sessions, controllers: {
registrations: 'users/registrations',
passwords: 'users/passwords',
sessions: 'users/sessions'
}
devise_scope :user do
get 'login' => 'users/sessions#new', :as => :sign_in
post 'login' => 'users/sessions#create', :as => :user_session
get 'logout' => 'users/sessions#destroy', :as => :destroy_user_session
get 'join' => 'users/registrations#new', :as => :sign_up
end
resources :users, except: %i[index destroy] do
member do
get :details
end
end
post 'user/updatemetacodes', to: 'users#updatemetacodes', as: :updatemetacodes
post 'user/update_metacode_focus', to: 'users#update_metacode_focus'
namespace :api, path: '/api', default: { format: :json } do
namespace :v2, path: '/v2' do
resources :metacodes, only: %i[index show]
resources :mappings, only: %i[index create show update destroy]
resources :maps, only: %i[index create show update destroy] do
post :stars, to: 'stars#create', on: :member
delete :stars, to: 'stars#destroy', on: :member
end
resources :synapses, only: %i[index create show update destroy]
resources :tokens, only: %i[index create destroy]
resources :topics, only: %i[index create show update destroy]
resources :users, only: %i[index show] do
get :current, on: :collection
end
match '*path', to: 'restful#catch_404', via: :all
end
namespace :v1, path: '/v1' do
root to: 'deprecated#deprecated', via: :all
match '*path', to: 'deprecated#deprecated', via: :all
end
match '*path', to: 'v2/restful#catch_404', via: :all
end
namespace :hacks do
get 'load_url_title'
end
end
# rubocop:enable Rubocop/Metrics/BlockLength