109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require 'sidekiq/web'
 | 
						|
 | 
						|
Rails.application.routes.draw do
 | 
						|
  mount ActionCable.server => '/cable'
 | 
						|
 | 
						|
  authenticate :user, lambda { |u| u.admin? } do
 | 
						|
    mount Sidekiq::Web, at: 'sidekiq'
 | 
						|
    mount PgHero::Engine, at: 'pghero'
 | 
						|
  end
 | 
						|
 | 
						|
  use_doorkeeper do
 | 
						|
    controllers authorizations: 'oauth/authorizations'
 | 
						|
  end
 | 
						|
 | 
						|
  get '.well-known/host-meta', to: 'xrd#host_meta', as: :host_meta
 | 
						|
  get '.well-known/webfinger', to: 'xrd#webfinger', as: :webfinger
 | 
						|
 | 
						|
  devise_for :users, path: 'auth', controllers: {
 | 
						|
    sessions:           'auth/sessions',
 | 
						|
    registrations:      'auth/registrations',
 | 
						|
    passwords:          'auth/passwords',
 | 
						|
    confirmations:      'auth/confirmations'
 | 
						|
  }
 | 
						|
 | 
						|
  resources :accounts, path: 'users', only: [:show], param: :username do
 | 
						|
    resources :stream_entries, path: 'updates', only: [:show]
 | 
						|
 | 
						|
    member do
 | 
						|
      get :followers
 | 
						|
      get :following
 | 
						|
 | 
						|
      post :follow
 | 
						|
      post :unfollow
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  namespace :settings do
 | 
						|
    resource :profile, only: [:show, :update]
 | 
						|
    resource :preferences, only: [:show, :update]
 | 
						|
  end
 | 
						|
 | 
						|
  resources :media, only: [:show]
 | 
						|
  resources :tags,  only: [:show]
 | 
						|
 | 
						|
  namespace :api do
 | 
						|
    # PubSubHubbub
 | 
						|
    resources :subscriptions, only: [:show]
 | 
						|
    post '/subscriptions/:id', to: 'subscriptions#update'
 | 
						|
 | 
						|
    # Salmon
 | 
						|
    post '/salmon/:id', to: 'salmon#update', as: :salmon
 | 
						|
 | 
						|
    # JSON / REST API
 | 
						|
    namespace :v1 do
 | 
						|
      resources :statuses, only: [:create, :show, :destroy] do
 | 
						|
        member do
 | 
						|
          get :context
 | 
						|
          get :reblogged_by
 | 
						|
          get :favourited_by
 | 
						|
 | 
						|
          post :reblog
 | 
						|
          post :unreblog
 | 
						|
          post :favourite
 | 
						|
          post :unfavourite
 | 
						|
        end
 | 
						|
      end
 | 
						|
 | 
						|
      get '/timelines/home',     to: 'timelines#home', as: :home_timeline
 | 
						|
      get '/timelines/mentions', to: 'timelines#mentions', as: :mentions_timeline
 | 
						|
      get '/timelines/public',   to: 'timelines#public', as: :public_timeline
 | 
						|
      get '/timelines/tag/:id',  to: 'timelines#tag', as: :hashtag_timeline
 | 
						|
 | 
						|
      resources :follows,  only: [:create]
 | 
						|
      resources :media,    only: [:create]
 | 
						|
      resources :apps,     only: [:create]
 | 
						|
 | 
						|
      resources :accounts, only: [:show] do
 | 
						|
        collection do
 | 
						|
          get :relationships
 | 
						|
          get :verify_credentials
 | 
						|
          get :suggestions
 | 
						|
          get :search
 | 
						|
        end
 | 
						|
 | 
						|
        member do
 | 
						|
          get :statuses
 | 
						|
          get :followers
 | 
						|
          get :following
 | 
						|
          get :common_followers
 | 
						|
 | 
						|
          post :follow
 | 
						|
          post :unfollow
 | 
						|
          post :block
 | 
						|
          post :unblock
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  get '/web/*any', to: 'home#index', as: :web
 | 
						|
 | 
						|
  get :about, to: 'about#index'
 | 
						|
  get :terms, to: 'about#terms'
 | 
						|
 | 
						|
  root 'home#index'
 | 
						|
 | 
						|
  match '*unmatched_route', via: :all, to: 'application#raise_not_found'
 | 
						|
end
 |