| 
									
										
										
										
											2016-11-28 12:36:47 +00:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-25 01:50:48 +00:00
										 |  |  | require 'sidekiq/web' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-20 21:53:20 +00:00
										 |  |  | Rails.application.routes.draw do | 
					
						
							| 
									
										
										
										
											2017-01-21 21:19:13 +00:00
										 |  |  |   mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development? | 
					
						
							| 
									
										
										
										
											2016-08-18 13:49:51 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-25 13:12:24 +00:00
										 |  |  |   authenticate :user, lambda { |u| u.admin? } do | 
					
						
							| 
									
										
										
										
											2016-12-13 12:42:10 +00:00
										 |  |  |     mount Sidekiq::Web, at: 'sidekiq', as: :sidekiq | 
					
						
							|  |  |  |     mount PgHero::Engine, at: 'pghero', as: :pghero | 
					
						
							| 
									
										
										
										
											2016-03-25 01:50:48 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-22 17:38:47 +00:00
										 |  |  |   use_doorkeeper do | 
					
						
							| 
									
										
										
										
											2017-04-07 10:40:26 +00:00
										 |  |  |     controllers authorizations: 'oauth/authorizations', authorized_applications: 'oauth/authorized_applications' | 
					
						
							| 
									
										
										
										
											2016-10-22 17:38:47 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2016-03-07 11:42:33 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-22 15:00:20 +00:00
										 |  |  |   get '.well-known/host-meta', to: 'xrd#host_meta', as: :host_meta | 
					
						
							|  |  |  |   get '.well-known/webfinger', to: 'xrd#webfinger', as: :webfinger | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-05 21:43:05 +00:00
										 |  |  |   devise_for :users, path: 'auth', controllers: { | 
					
						
							|  |  |  |     sessions:           'auth/sessions', | 
					
						
							|  |  |  |     registrations:      'auth/registrations', | 
					
						
							| 
									
										
										
										
											2016-10-03 14:38:22 +00:00
										 |  |  |     passwords:          'auth/passwords', | 
					
						
							| 
									
										
										
										
											2016-11-28 12:36:47 +00:00
										 |  |  |     confirmations:      'auth/confirmations', | 
					
						
							| 
									
										
										
										
											2016-03-05 21:43:05 +00:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2016-03-05 12:12:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-22 18:26:22 +00:00
										 |  |  |   get '/users/:username', to: redirect('/@%{username}'), constraints: { format: :html } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-29 18:42:08 +00:00
										 |  |  |   resources :accounts, path: 'users', only: [:show], param: :username do | 
					
						
							| 
									
										
										
										
											2016-12-18 14:20:39 +00:00
										 |  |  |     resources :stream_entries, path: 'updates', only: [:show] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         get :embed | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-03-19 13:02:30 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-01 18:52:25 +00:00
										 |  |  |     get :remote_follow,  to: 'remote_follow#new' | 
					
						
							|  |  |  |     post :remote_follow, to: 'remote_follow#create' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-19 13:02:30 +00:00
										 |  |  |     member do | 
					
						
							|  |  |  |       get :followers | 
					
						
							|  |  |  |       get :following | 
					
						
							| 
									
										
										
										
											2016-10-06 19:27:58 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |       post :follow | 
					
						
							|  |  |  |       post :unfollow | 
					
						
							| 
									
										
										
										
											2016-03-19 13:02:30 +00:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-02-29 18:42:08 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2016-02-22 15:00:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-22 18:26:22 +00:00
										 |  |  |   get '/@:username', to: 'accounts#show', as: :short_account | 
					
						
							|  |  |  |   get '/@:account_username/:id', to: 'statuses#show', as: :short_account_status | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-14 00:28:49 +00:00
										 |  |  |   namespace :settings do | 
					
						
							|  |  |  |     resource :profile, only: [:show, :update] | 
					
						
							|  |  |  |     resource :preferences, only: [:show, :update] | 
					
						
							| 
									
										
										
										
											2017-03-30 17:42:33 +00:00
										 |  |  |     resource :import, only: [:show, :create] | 
					
						
							| 
									
										
										
										
											2017-03-19 19:29:41 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resource :export, only: [:show] do | 
					
						
							|  |  |  |       collection do | 
					
						
							|  |  |  |         get :follows, to: 'exports#download_following_list' | 
					
						
							|  |  |  |         get :blocks, to: 'exports#download_blocking_list' | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-01-27 19:28:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resource :two_factor_auth, only: [:show] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         post :enable | 
					
						
							|  |  |  |         post :disable | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-10-14 00:28:49 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-17 15:47:26 +00:00
										 |  |  |   resources :media, only: [:show] | 
					
						
							| 
									
										
										
										
											2016-11-05 14:20:05 +00:00
										 |  |  |   resources :tags,  only: [:show] | 
					
						
							| 
									
										
										
										
											2016-10-02 14:14:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-29 15:54:54 +00:00
										 |  |  |   # Remote follow | 
					
						
							|  |  |  |   get  :authorize_follow, to: 'authorize_follow#new' | 
					
						
							|  |  |  |   post :authorize_follow, to: 'authorize_follow#create' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-28 17:45:13 +00:00
										 |  |  |   namespace :admin do | 
					
						
							|  |  |  |     resources :pubsubhubbub, only: [:index] | 
					
						
							| 
									
										
										
										
											2017-04-03 16:55:06 +00:00
										 |  |  |     resources :domain_blocks, only: [:index, :new, :create] | 
					
						
							| 
									
										
										
										
											2017-01-12 19:46:24 +00:00
										 |  |  |     resources :settings, only: [:index, :update] | 
					
						
							| 
									
										
										
										
											2017-02-16 23:42:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     resources :reports, only: [:index, :show] do | 
					
						
							|  |  |  |       member do | 
					
						
							|  |  |  |         post :resolve | 
					
						
							|  |  |  |         post :silence | 
					
						
							|  |  |  |         post :suspend | 
					
						
							|  |  |  |         post :remove | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-12-06 17:22:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-14 23:22:58 +00:00
										 |  |  |     resources :accounts, only: [:index, :show] do | 
					
						
							| 
									
										
										
										
											2016-12-06 17:22:59 +00:00
										 |  |  |       member do | 
					
						
							| 
									
										
										
										
											2017-02-14 23:22:58 +00:00
										 |  |  |         post :silence | 
					
						
							|  |  |  |         post :unsilence | 
					
						
							| 
									
										
										
										
											2016-12-06 17:22:59 +00:00
										 |  |  |         post :suspend | 
					
						
							| 
									
										
										
										
											2017-02-14 23:22:58 +00:00
										 |  |  |         post :unsuspend | 
					
						
							| 
									
										
										
										
											2016-12-06 17:22:59 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-11-28 17:45:13 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-26 07:59:35 +00:00
										 |  |  |   get '/admin', to: redirect('/admin/settings', status: 302) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-29 18:42:08 +00:00
										 |  |  |   namespace :api do | 
					
						
							| 
									
										
										
										
											2016-11-28 12:36:47 +00:00
										 |  |  |     # PubSubHubbub outgoing subscriptions | 
					
						
							| 
									
										
										
										
											2016-02-29 18:42:08 +00:00
										 |  |  |     resources :subscriptions, only: [:show] | 
					
						
							|  |  |  |     post '/subscriptions/:id', to: 'subscriptions#update' | 
					
						
							| 
									
										
										
										
											2016-03-07 11:42:33 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-28 12:36:47 +00:00
										 |  |  |     # PubSubHubbub incoming subscriptions | 
					
						
							|  |  |  |     post '/push', to: 'push#update', as: :push | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-07 11:42:33 +00:00
										 |  |  |     # Salmon | 
					
						
							| 
									
										
										
										
											2016-02-29 18:42:08 +00:00
										 |  |  |     post '/salmon/:id', to: 'salmon#update', as: :salmon | 
					
						
							| 
									
										
										
										
											2016-03-07 11:42:33 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-30 22:01:03 +00:00
										 |  |  |     # OEmbed | 
					
						
							|  |  |  |     get '/oembed', to: 'oembed#show', as: :oembed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-07 11:42:33 +00:00
										 |  |  |     # JSON / REST API | 
					
						
							| 
									
										
										
										
											2016-09-27 14:58:23 +00:00
										 |  |  |     namespace :v1 do | 
					
						
							|  |  |  |       resources :statuses, only: [:create, :show, :destroy] do | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           get :context | 
					
						
							| 
									
										
										
										
											2017-01-20 00:00:14 +00:00
										 |  |  |           get :card | 
					
						
							| 
									
										
										
										
											2016-11-03 13:50:22 +00:00
										 |  |  |           get :reblogged_by | 
					
						
							|  |  |  |           get :favourited_by | 
					
						
							| 
									
										
										
										
											2016-09-27 14:58:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |           post :reblog | 
					
						
							|  |  |  |           post :unreblog | 
					
						
							|  |  |  |           post :favourite | 
					
						
							|  |  |  |           post :unfavourite | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2016-03-07 12:25:26 +00:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-09 16:48:44 +00:00
										 |  |  |       get '/timelines/home',     to: 'timelines#home', as: :home_timeline | 
					
						
							|  |  |  |       get '/timelines/public',   to: 'timelines#public', as: :public_timeline | 
					
						
							|  |  |  |       get '/timelines/tag/:id',  to: 'timelines#tag', as: :hashtag_timeline | 
					
						
							| 
									
										
										
										
											2016-11-08 22:22:44 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-22 01:32:27 +00:00
										 |  |  |       get '/search', to: 'search#index', as: :search | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-23 20:09:27 +00:00
										 |  |  |       resources :follows,    only: [:create] | 
					
						
							|  |  |  |       resources :media,      only: [:create] | 
					
						
							|  |  |  |       resources :apps,       only: [:create] | 
					
						
							|  |  |  |       resources :blocks,     only: [:index] | 
					
						
							| 
									
										
										
										
											2017-02-06 01:51:56 +00:00
										 |  |  |       resources :mutes,      only: [:index] | 
					
						
							| 
									
										
										
										
											2017-01-23 20:09:27 +00:00
										 |  |  |       resources :favourites, only: [:index] | 
					
						
							| 
									
										
										
										
											2017-02-14 19:59:26 +00:00
										 |  |  |       resources :reports,    only: [:index, :create] | 
					
						
							| 
									
										
										
										
											2017-03-15 22:12:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |       resource :instance, only: [:show] | 
					
						
							| 
									
										
										
										
											2016-10-02 14:14:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-26 18:30:45 +00:00
										 |  |  |       resources :follow_requests, only: [:index] do | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           post :authorize | 
					
						
							|  |  |  |           post :reject | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-23 20:09:27 +00:00
										 |  |  |       resources :notifications, only: [:index, :show] do | 
					
						
							|  |  |  |         collection do | 
					
						
							|  |  |  |           post :clear | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-11-19 23:33:02 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-27 14:58:23 +00:00
										 |  |  |       resources :accounts, only: [:show] do | 
					
						
							|  |  |  |         collection do | 
					
						
							|  |  |  |           get :relationships | 
					
						
							| 
									
										
										
										
											2016-10-02 14:14:21 +00:00
										 |  |  |           get :verify_credentials | 
					
						
							| 
									
										
										
										
											2016-11-12 13:33:21 +00:00
										 |  |  |           get :search | 
					
						
							| 
									
										
										
										
											2016-09-27 14:58:23 +00:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         member do | 
					
						
							|  |  |  |           get :statuses | 
					
						
							|  |  |  |           get :followers | 
					
						
							|  |  |  |           get :following | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           post :follow | 
					
						
							|  |  |  |           post :unfollow | 
					
						
							| 
									
										
										
										
											2016-10-03 16:17:06 +00:00
										 |  |  |           post :block | 
					
						
							|  |  |  |           post :unblock | 
					
						
							| 
									
										
										
										
											2017-02-06 01:51:56 +00:00
										 |  |  |           post :mute | 
					
						
							|  |  |  |           post :unmute | 
					
						
							| 
									
										
										
										
											2016-09-27 14:58:23 +00:00
										 |  |  |         end | 
					
						
							| 
									
										
										
										
											2016-03-07 11:42:33 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2017-01-09 13:00:55 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     namespace :web do | 
					
						
							|  |  |  |       resource :settings, only: [:update] | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-02-29 18:42:08 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2016-02-22 15:00:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-04 14:35:36 +00:00
										 |  |  |   get '/web/(*any)', to: 'home#index', as: :web | 
					
						
							| 
									
										
										
										
											2016-11-13 13:01:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-13 02:24:41 +00:00
										 |  |  |   get '/about',      to: 'about#index' | 
					
						
							|  |  |  |   get '/about/more', to: 'about#more' | 
					
						
							|  |  |  |   get '/terms',      to: 'about#terms' | 
					
						
							| 
									
										
										
										
											2017-01-20 00:00:14 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-22 15:00:20 +00:00
										 |  |  |   root 'home#index' | 
					
						
							| 
									
										
										
										
											2016-09-08 00:40:51 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   match '*unmatched_route', via: :all, to: 'application#raise_not_found' | 
					
						
							| 
									
										
										
										
											2016-02-20 21:53:20 +00:00
										 |  |  | end |