|
3 | 3 | Badgiy::Application.routes.draw do
|
4 | 4 |
|
5 | 5 | # We get 10K's of requests for this route.
|
6 |
| - match '/.json', to: proc { [404, {}, ['']] } |
7 |
| - match '/teams/.json', to: proc { [404, {}, ['']] } |
| 6 | + get '/.json', to: proc { [404, {}, ['']] } |
| 7 | + get '/teams/.json', to: proc { [404, {}, ['']] } |
8 | 8 |
|
9 |
| - if Rails.env.development? |
10 |
| - mount MailPreview => 'mail_view' |
11 |
| - end |
12 |
| - |
13 |
| - get 'protips/update' |
14 |
| - put 'protips/update' |
15 |
| - |
16 |
| - get 'protip/update' |
17 |
| - put 'protip/update' |
| 9 | + match 'protips/update', via: %w(get put) |
| 10 | + match 'protip/update' , via: %w(get put) |
18 | 11 |
|
19 | 12 | root to: 'protips#index'
|
20 |
| - match 'welcome' => 'home#index', as: :welcome |
| 13 | + get 'welcome' => 'home#index', as: :welcome |
21 | 14 |
|
22 | 15 | mount ServeFonts.new, at: '/fonts'
|
23 |
| - match '/p/dpvbbg' => redirect('https://coderwall.com/p/devsal') |
24 |
| - match '/gh' => redirect('/?utm_campaign=github_orgs_badges&utm_source=github') |
| 16 | + get '/p/dpvbbg' => redirect('https://coderwall.com/p/devsal') |
| 17 | + get '/gh' => redirect('/?utm_campaign=github_orgs_badges&utm_source=github') |
25 | 18 |
|
26 | 19 | topic_regex = /[A-Za-z0-9#\$\+\-_\.(%23)(%24)(%2B)]+/
|
27 | 20 |
|
28 |
| - match '/comments' => 'comments#index', as: :latest_comments |
29 |
| - match '/jobs(/:location(/:skill))' => 'opportunities#index', as: :jobs |
30 |
| - match '/jobs-map' => 'opportunities#map', as: :jobs_map |
| 21 | + get '/comments' => 'comments#index', as: :latest_comments |
| 22 | + get '/jobs(/:location(/:skill))' => 'opportunities#index', as: :jobs |
| 23 | + get '/jobs-map' => 'opportunities#map', as: :jobs_map |
31 | 24 |
|
32 | 25 | mount Split::Dashboard, at: 'split'
|
33 | 26 |
|
34 | 27 | resources :protips, :path => '/p', :constraints => {id: /[\dA-Z\-_]{6}/i} do
|
35 |
| - collection { get 'random' } |
36 |
| - collection { get 'search' => 'protips#search', as: :search } |
37 |
| - collection { post 'search' => 'protips#search' } |
38 |
| - collection { get 'me' => 'protips#me', as: :my } |
39 |
| - collection { get 'admin' => 'protips#admin', as: :reviewable } |
40 |
| - collection { get 'team/:team_slug' => 'protips#team', as: :team } |
41 |
| - collection { get 'd/:date(/:start)' => 'protips#date', as: :date } |
42 |
| - collection { get 't/trending' => 'protips#trending', as: :trending_topics } |
43 |
| - collection { get 't/by_tags' => 'protips#by_tags', as: :by_tags } |
44 |
| - collection { get 'u/:username' => 'protips#user', as: :user } |
45 |
| - collection { get 't/(/*tags)' => 'networks#tag', as: :tagged } |
46 |
| - collection { put 't/(/*tags)/subscribe' => 'protips#subscribe', as: :subscribe } |
47 |
| - collection { put 't/(/*tags)/unsubscribe' => 'protips#unsubscribe', as: :unsubscribe } |
48 |
| - collection { get 'fresh' } |
49 |
| - collection { get 'trending' } |
50 |
| - collection { get 'popular' } |
51 |
| - collection { get 'liked' } |
52 |
| - collection { post 'preview' } |
53 |
| - |
54 |
| - member { post 'upvote' } |
55 |
| - member { post 'report_inappropriate' } |
56 |
| - member { post 'tag' } |
57 |
| - member { post 'flag' } |
58 |
| - member { post 'feature' } |
59 |
| - member { post 'queue/:queue' => 'protips#queue', as: :queue } |
60 |
| - member { post 'delete_tag/:topic' => 'protips#delete_tag', as: :delete_tag, :topic => topic_regex } |
| 28 | + collection do |
| 29 | + get 'random' |
| 30 | + get 'search' => 'protips#search', as: :search |
| 31 | + post 'search' => 'protips#search' |
| 32 | + get 'me' => 'protips#me', as: :my |
| 33 | + get 'admin' => 'protips#admin', as: :reviewable |
| 34 | + get 'team/:team_slug' => 'protips#team', as: :team |
| 35 | + get 'd/:date(/:start)' => 'protips#date', as: :date |
| 36 | + get 't/trending' => 'protips#trending', as: :trending_topics |
| 37 | + get 't/by_tags' => 'protips#by_tags', as: :by_tags |
| 38 | + get 'u/:username' => 'protips#user', as: :user |
| 39 | + get 't/(/*tags)' => 'networks#tag', as: :tagged |
| 40 | + put 't/(/*tags)/subscribe' => 'protips#subscribe', as: :subscribe |
| 41 | + put 't/(/*tags)/unsubscribe' => 'protips#unsubscribe', as: :unsubscribe |
| 42 | + get 'fresh' |
| 43 | + get 'trending' |
| 44 | + get 'popular' |
| 45 | + get 'liked' |
| 46 | + post 'preview' |
| 47 | + end |
| 48 | + member do |
| 49 | + post 'upvote' |
| 50 | + post 'report_inappropriate' |
| 51 | + post 'tag' |
| 52 | + post 'flag' |
| 53 | + post 'feature' |
| 54 | + post 'queue/:queue' => 'protips#queue', as: :queue |
| 55 | + post 'delete_tag/:topic' => 'protips#delete_tag', as: :delete_tag, :topic => topic_regex |
| 56 | + end |
61 | 57 | resources :comments, :constraints => {id: /\d+/} do
|
62 | 58 | member { post 'like' }
|
63 | 59 | end
|
64 | 60 | end
|
65 | 61 |
|
66 | 62 | resources :networks, :path => '/n', :constraints => {:slug => /[\dA-Z\-]/i} do
|
67 |
| - collection { get 'featured' => 'networks#featured', as: :featured } |
68 |
| - collection { get '/u/:username' => 'networks#user', as: :user } |
69 |
| - member { get '/t/(/*tags)' => 'networks#tag', as: :tagged } |
70 |
| - member { get '/members' => 'networks#members', as: :members } |
71 |
| - member { get '/mayor' => 'networks#mayor', as: :mayor } |
72 |
| - member { get '/expert' => 'networks#expert', as: :expert } |
73 |
| - member { post '/join' => 'networks#join', as: :join } |
74 |
| - member { post '/leave' => 'networks#leave', as: :leave } |
75 |
| - member { post '/update-tags' => 'networks#update_tags', as: :update_tags } |
76 |
| - member { get '/current-mayor' => 'networks#current_mayor', as: :current_mayor } |
| 63 | + collection do |
| 64 | + get 'featured' => 'networks#featured', as: :featured |
| 65 | + get '/u/:username' => 'networks#user', as: :user |
| 66 | + end |
| 67 | + member do |
| 68 | + get '/t/(/*tags)' => 'networks#tag', as: :tagged |
| 69 | + get '/members' => 'networks#members', as: :members |
| 70 | + get '/mayor' => 'networks#mayor', as: :mayor |
| 71 | + get '/expert' => 'networks#expert', as: :expert |
| 72 | + post '/join' => 'networks#join', as: :join |
| 73 | + post '/leave' => 'networks#leave', as: :leave |
| 74 | + post '/update-tags' => 'networks#update_tags', as: :update_tags |
| 75 | + get '/current-mayor' => 'networks#current_mayor', as: :current_mayor |
| 76 | + end |
77 | 77 | end
|
78 | 78 |
|
79 | 79 | resources :processing_queues, :path => '/q' do
|
80 | 80 | member { post '/dequeue/:item' => 'processing_queues#dequeue', as: :dequeue }
|
81 | 81 | end
|
82 | 82 |
|
83 |
| - match 'trending' => 'protips#index', as: :protips |
| 83 | + get 'trending' => 'protips#index', as: :protips |
84 | 84 |
|
85 |
| - if Rails.env.development? |
86 |
| - match '/letter_opener' => 'letter_opener/letters#index', as: :letter_opener_letters |
87 |
| - match '/letter_opener/:id/:style.html' => 'letter_opener/letters#show', as: :letter_opener_letter |
88 |
| - mount Campaigns::Preview => 'campaigns' |
89 |
| - mount Notifier::Preview => 'mail' |
90 |
| - mount WeeklyDigest::Preview => 'digest' |
91 |
| - mount Subscription::Preview => 'subscription' |
92 |
| - end |
| 85 | + get 'faq' => 'pages#show', :page => :faq, as: :faq |
| 86 | + get 'tos' => 'pages#show', :page => :tos, as: :tos |
| 87 | + get 'privacy_policy' => 'pages#show', :page => :privacy_policy, as: :privacy_policy |
| 88 | + get 'contact_us' => 'pages#show', :page => :contact_us, as: :contact_us |
| 89 | + get 'api' => 'pages#show', :page => :api, as: :api |
| 90 | + get 'achievements' => 'pages#show', :page => :achievements, as: :achievements if Rails.env.development? |
| 91 | + get '/pages/:page' => 'pages#show' |
| 92 | + |
| 93 | + get 'award' => 'achievements#award', as: :award_badge |
93 | 94 |
|
94 |
| - match 'faq' => 'pages#show', :page => :faq, as: :faq |
95 |
| - match 'tos' => 'pages#show', :page => :tos, as: :tos |
96 |
| - match 'privacy_policy' => 'pages#show', :page => :privacy_policy, as: :privacy_policy |
97 |
| - match 'contact_us' => 'pages#show', :page => :contact_us, as: :contact_us |
98 |
| - match 'api' => 'pages#show', :page => :api, as: :api |
99 |
| - match 'achievements' => 'pages#show', :page => :achievements, as: :achievements if Rails.env.development? |
100 |
| - match '/pages/:page' => 'pages#show' |
101 |
| - |
102 |
| - match 'award' => 'achievements#award', as: :award_badge |
103 |
| - |
104 |
| - match '/auth/:provider/callback' => 'sessions#create', as: :authenticate |
105 |
| - match '/auth/failure' => 'sessions#failure', as: :authentication_failure |
106 |
| - match '/settings' => 'users#edit', as: :settings |
107 |
| - match '/redeem/:code' => 'redemptions#show' |
108 |
| - match '/unsubscribe' => 'emails#unsubscribe' |
109 |
| - match '/delivered' => 'emails#delivered' |
110 |
| - match '/delete_account' => 'users#delete_account', as: :delete_account |
111 |
| - match '/delete_account_confirmed' => 'users#delete_account_confirmed', as: :delete_account_confirmed, :via => :post |
| 95 | + get '/auth/:provider/callback' => 'sessions#create', as: :authenticate |
| 96 | + get '/auth/failure' => 'sessions#failure', as: :authentication_failure |
| 97 | + get '/settings' => 'users#edit', as: :settings |
| 98 | + get '/redeem/:code' => 'redemptions#show' |
| 99 | + get '/unsubscribe' => 'emails#unsubscribe' |
| 100 | + get '/delivered' => 'emails#delivered' |
| 101 | + get '/delete_account' => 'users#delete_account', as: :delete_account |
| 102 | + post '/delete_account_confirmed' => 'users#delete_account_confirmed', as: :delete_account_confirmed |
112 | 103 |
|
113 | 104 | resources :authentications, :usernames
|
114 | 105 | resources :invitations
|
115 |
| - match '/i/:id/:r' => 'invitations#show', as: :invitation |
| 106 | + get '/i/:id/:r' => 'invitations#show', as: :invitation |
116 | 107 |
|
117 | 108 | resources :sessions do
|
118 | 109 | collection { get('force') }
|
119 | 110 | end
|
120 | 111 |
|
121 |
| - match 'webhooks/stripe' => 'accounts#webhook' |
122 |
| - match '/alerts' => 'alerts#create', :via => :post |
123 |
| - match '/alerts' => 'alerts#index', :via => :get |
| 112 | + get 'webhooks/stripe' => 'accounts#webhook' |
| 113 | + get '/alerts' => 'alerts#create', :via => :post |
| 114 | + get '/alerts' => 'alerts#index', :via => :get |
124 | 115 |
|
125 |
| - #match '/payment' => 'accounts#new', as: :payment |
| 116 | + #get '/payment' => 'accounts#new', as: :payment |
126 | 117 |
|
127 |
| - match '/users/:username/follow' => 'follows#create', as: :follow_user, :type => :user, :via => :post |
| 118 | + post '/users/:username/follow' => 'follows#create', as: :follow_user, :type => :user |
128 | 119 |
|
129 |
| - match '/team/:slug' => 'teams#show', as: :teamname |
130 |
| - match '/team/:slug/edit' => 'teams#edit', as: :teamname_edit |
131 |
| - match '/team/:slug/(:job_id)' => 'teams#show', as: :job |
| 120 | + get '/team/:slug' => 'teams#show', as: :teamname |
| 121 | + get '/team/:slug/edit' => 'teams#edit', as: :teamname_edit |
| 122 | + get '/team/:slug/(:job_id)' => 'teams#show', as: :job |
132 | 123 |
|
133 | 124 | resources :teams do
|
134 |
| - collection { post 'inquiry' } |
135 |
| - member { get 'accept' } |
136 |
| - member { post 'record-exit' => 'teams#record_exit', as: :record_exit } |
137 |
| - member { get 'visitors' } |
138 |
| - member { post 'follow' => 'follows#create', :type => :team } |
139 |
| - member { post 'join' } |
140 |
| - member { post 'join/:user_id/approve' => 'teams#approve_join', as: :approve_join } |
141 |
| - member { post 'join/:user_id/deny' => 'teams#deny_join', as: :deny_join } |
142 |
| - collection { get 'followed' } |
143 |
| - collection { get 'search' } |
| 125 | + member do |
| 126 | + get 'accept' |
| 127 | + post 'record-exit' => 'teams#record_exit', as: :record_exit |
| 128 | + get 'visitors' |
| 129 | + post 'follow' => 'follows#create', :type => :team |
| 130 | + post 'join' |
| 131 | + post 'join/:user_id/approve' => 'teams#approve_join', as: :approve_join |
| 132 | + post 'join/:user_id/deny' => 'teams#deny_join', as: :deny_join |
| 133 | + end |
| 134 | + collection do |
| 135 | + post 'inquiry' |
| 136 | + get 'followed' |
| 137 | + get 'search' |
| 138 | + end |
144 | 139 | resources :team_members
|
145 | 140 | resources :team_locations, as: :locations
|
146 | 141 | resources :opportunities do
|
147 |
| - member { post 'apply' } |
148 |
| - member { get 'activate' } |
149 |
| - member { get 'deactivate' } |
150 |
| - member { post 'visit' } |
| 142 | + member do |
| 143 | + post 'apply' |
| 144 | + get 'activate' |
| 145 | + get 'deactivate' |
| 146 | + post 'visit' |
| 147 | + end |
151 | 148 | end
|
152 | 149 | resource :account do
|
153 | 150 | collection { post 'send_invoice' => 'accounts#send_invoice' }
|
154 | 151 | end
|
155 | 152 | end
|
156 | 153 |
|
157 |
| - match '/leaderboard' => 'teams#leaderboard', as: :leaderboard |
158 |
| - match '/employers' => 'teams#upgrade', as: :employers |
| 154 | + get '/leaderboard' => 'teams#leaderboard', as: :leaderboard |
| 155 | + get '/employers' => 'teams#upgrade', as: :employers |
159 | 156 |
|
160 | 157 | ['github', 'twitter', 'forrst', 'dribbble', 'linkedin', 'codeplex', 'bitbucket', 'stackoverflow'].each do |provider|
|
161 |
| - match "/#{provider}/unlink" => 'users#unlink_provider', :provider => provider, :via => :post, as: "unlink_#{provider}".to_sym |
162 |
| - match "/#{provider}/:username" => 'users#show', :provider => provider |
| 158 | + post "/#{provider}/unlink" => 'users#unlink_provider', :provider => provider, as: "unlink_#{provider}".to_sym |
| 159 | + get "/#{provider}/:username" => 'users#show', :provider => provider |
163 | 160 | end
|
164 | 161 |
|
165 | 162 | resources :users do
|
166 |
| - collection { |
| 163 | + collection do |
167 | 164 | post 'invite'
|
168 | 165 | get 'autocomplete'
|
169 | 166 | get 'status'
|
170 |
| - } |
171 |
| - member { |
172 |
| - post 'specialties' |
173 |
| - } |
| 167 | + end |
| 168 | + member { post 'specialties' } |
174 | 169 | resources :skills
|
175 | 170 | resources :highlights
|
176 | 171 | resources :endorsements
|
|
180 | 175 | resources :unbans, only: [:create]
|
181 | 176 | end
|
182 | 177 |
|
183 |
| - match 'clear/:id/:provider' => 'users#clear_provider', as: :clear_provider |
184 |
| - match '/visual' => 'users#beta' |
185 |
| - match '/refresh/:username' => 'users#refresh', as: :refresh |
186 |
| - match '/nextaccomplishment' => 'highlights#random', as: :random_accomplishment |
187 |
| - match '/add-skill' => 'skills#create', as: :add_skill, :via => :post |
| 178 | + get '/clear/:id/:provider' => 'users#clear_provider', as: :clear_provider |
| 179 | + get '/visual' => 'users#beta' |
| 180 | + get '/refresh/:username' => 'users#refresh', as: :refresh |
| 181 | + get '/nextaccomplishment' => 'highlights#random', as: :random_accomplishment |
| 182 | + get '/add-skill' => 'skills#create', as: :add_skill, :via => :post |
188 | 183 |
|
189 | 184 | require_admin = ->(params, req) { User.where(id: req.session[:current_user]).first.try(:admin?) }
|
190 | 185 |
|
191 | 186 | scope :admin, as: :admin, :path => '/admin', :constraints => require_admin do
|
192 |
| - match '/' => 'admin#index', as: :root |
193 |
| - match '/failed_jobs' => 'admin#failed_jobs' |
194 |
| - match '/cache_stats' => 'admin#cache_stats' |
195 |
| - match '/teams' => 'admin#teams', as: :teams |
196 |
| - match '/teams/sections/:num_sections' => 'admin#sections_teams', as: :sections_teams |
197 |
| - match '/teams/section/:section' => 'admin#section_teams', as: :section_teams |
| 187 | + get '/' => 'admin#index', as: :root |
| 188 | + get '/failed_jobs' => 'admin#failed_jobs' |
| 189 | + get '/cache_stats' => 'admin#cache_stats' |
| 190 | + get '/teams' => 'admin#teams', as: :teams |
| 191 | + get '/teams/sections/:num_sections' => 'admin#sections_teams', as: :sections_teams |
| 192 | + get '/teams/section/:section' => 'admin#section_teams', as: :section_teams |
198 | 193 | mount Resque::Server.new, at: '/resque'
|
199 | 194 | end
|
200 | 195 |
|
201 |
| - match '/blog' => 'blog_posts#index', as: :blog |
202 |
| - match '/blog/:id' => 'blog_posts#show', as: :blog_post |
203 |
| - match '/articles.atom' => 'blog_posts#index', as: :atom, :format => :atom |
204 |
| - |
205 |
| - match '/' => 'protips#index', as: :signup |
206 |
| - match '/signin' => 'sessions#signin', as: :signin |
207 |
| - match '/signout' => 'sessions#destroy', as: :signout |
208 |
| - match '/goodbye' => 'sessions#destroy', as: :sign_out |
209 |
| - |
210 |
| - match '/dashboard' => 'events#index', as: :dashboard |
211 |
| - match '/roll-the-dice' => 'users#randomize', as: :random_wall |
212 |
| - match '/trending' => 'links#index', as: :trending |
213 |
| - match '/:username' => 'users#show', as: :badge |
214 |
| - match '/:username/achievements/:id' => 'achievements#show', as: :user_achievement |
215 |
| - match '/:username/endorsements.json' => 'endorsements#show' |
216 |
| - match '/:username/followers' => 'follows#index', as: :followers, :type => :followers |
217 |
| - match '/:username/following' => 'follows#index', as: :following, :type => :following |
218 |
| - match '/:username/events' => 'events#index', as: :user_activity_feed |
219 |
| - match '/:username/events/more' => 'events#more' |
220 |
| - |
221 |
| - match '/javascripts/*filename.js' => 'legacy#show', extension: 'js' |
222 |
| - match '/stylesheets/*filename.css' => 'legacy#show', extension: 'css' |
223 |
| - match '/images/*filename.png' => 'legacy#show', extension: 'png' |
224 |
| - match '/images/*filename.jpg' => 'legacy#show', extension: 'jpg' |
225 |
| - |
226 |
| - match ':controller(/:action(/:id(.:format)))' if Rails.env.test? || Rails.env.development? |
| 196 | + get '/blog' => 'blog_posts#index', as: :blog |
| 197 | + get '/blog/:id' => 'blog_posts#show', as: :blog_post |
| 198 | + get '/articles.atom' => 'blog_posts#index', as: :atom, :format => :atom |
| 199 | + |
| 200 | + get '/' => 'protips#index', as: :signup |
| 201 | + get '/signin' => 'sessions#signin', as: :signin |
| 202 | + get '/signout' => 'sessions#destroy', as: :signout |
| 203 | + get '/goodbye' => 'sessions#destroy', as: :sign_out |
| 204 | + |
| 205 | + get '/dashboard' => 'events#index', as: :dashboard |
| 206 | + get '/roll-the-dice' => 'users#randomize', as: :random_wall |
| 207 | + get '/trending' => 'links#index', as: :trending |
| 208 | + get '/:username' => 'users#show', as: :badge |
| 209 | + get '/:username/achievements/:id' => 'achievements#show', as: :user_achievement |
| 210 | + get '/:username/endorsements.json' => 'endorsements#show' |
| 211 | + get '/:username/followers' => 'follows#index', as: :followers, :type => :followers |
| 212 | + get '/:username/following' => 'follows#index', as: :following, :type => :following |
| 213 | + get '/:username/events' => 'events#index', as: :user_activity_feed |
| 214 | + get '/:username/events/more' => 'events#more' |
| 215 | + |
| 216 | + get '/javascripts/*filename.js' => 'legacy#show', extension: 'js' |
| 217 | + get '/stylesheets/*filename.css' => 'legacy#show', extension: 'css' |
| 218 | + get '/images/*filename.png' => 'legacy#show', extension: 'png' |
| 219 | + get '/images/*filename.jpg' => 'legacy#show', extension: 'jpg' |
227 | 220 |
|
228 | 221 | namespace :callbacks do
|
229 | 222 | post '/hawt/feature' => 'hawt#feature'
|
230 | 223 | post '/hawt/unfeature' => 'hawt#unfeature'
|
231 | 224 | end
|
232 | 225 |
|
| 226 | + if Rails.env.development? |
| 227 | + mount MailPreview => 'mail_view' |
| 228 | + get '/letter_opener' => 'letter_opener/letters#index', as: :letter_opener_letters |
| 229 | + get '/letter_opener/:id/:style.html' => 'letter_opener/letters#show', as: :letter_opener_letter |
| 230 | + mount Campaigns::Preview => 'campaigns' |
| 231 | + mount Notifier::Preview => 'mail' |
| 232 | + mount WeeklyDigest::Preview => 'digest' |
| 233 | + mount Subscription::Preview => 'subscription' |
| 234 | + end |
| 235 | + |
233 | 236 | end
|
0 commit comments