changed send_feedback url too
[shapado:shapado.git] / config / routes.rb
1 ENV["MAGENT_WEB_PATH"] = "/magent"
2 require 'magent_web'
3
4 ENV["BUGHUNTER_PATH"] = "/errors"
5 require 'bug_hunter'
6
7 Rails.application.routes.draw do
8   devise_for(:users,
9              :path_names => {:sign_in => 'login', :sign_out => 'logout'},
10              :controllers => {:registrations => 'users', :omniauth_callbacks => "multiauth/sessions"}) do
11   end
12   match '/groups/:group_id/check_custom_domain' => 'groups#check_custom_domain',
13   :as => 'check_custom_domain'
14   match '/groups/:group_id/reset_custom_domain' => 'groups#reset_custom_domain',
15    :method => :post, :as => 'reset_custom_domain'
16   match '/connect' => 'users#social_connect', :method => :get, :as => :social_connect
17   match '/invitations/accept' => 'invitations#accept', :method => :get, :as => :accept_invitation
18   match '/disconnect_twitter_group' => 'groups#disconnect_twitter_group', :method => :get
19   match '/group_twitter_request_token' => 'groups#group_twitter_request_token', :method => :get
20   match 'confirm_age_welcome' => 'welcome#confirm_age', :as => :confirm_age_welcome
21   match '/change_language_filter' => 'welcome#change_language_filter', :as => :change_language_filter
22   match '/register' => 'users#create', :as => :register
23   match '/signup' => 'users#new', :as => :signup
24   match '/plans' => 'doc#plans', :as => :plans
25   match '/chat' => 'doc#chat', :as => :chat
26   match '/shapado_feedback' => 'welcome#feedback', :as => :feedback
27   match '/feedback' => 'welcome#fake_feedback'
28   match '/send_feedback' => 'welcome#send_shapado_feedback', :as => :send_feedback
29   match '/send_shapado_feedback' => 'welcome#send_feedback', :as => :send_feedback
30   match '/settings' => 'users#edit', :as => :settings
31   match '/tos' => 'doc#tos', :as => :tos
32   match '/privacy' => 'doc#privacy', :as => :privacy
33   match '/widgets/embedded/:id' => 'widgets#embedded', :as => :embedded_widget
34   match '/suggestions' => 'users#suggestions', :as => :suggestions
35   match '/activities' => 'activities#index', :as => :activities
36   match '/activities/:id' => 'activities#show', :as => :activity, :method => :get
37
38   match '/update_stripe' => 'invoices#webhook', :method => :post
39
40   get "mobile/index"
41
42   match '/users/auth/:provider' => 'users#auth', :as => :auth_users
43
44   match '/facebook' => "facebook#index", :as => :facebook, :method => :any
45   match '/facebook/enable_page' => 'facebook#enable_page', :as => :enable_page_facebook
46
47   mount MagentWeb.app => ENV["MAGENT_WEB_PATH"]
48   mount BugHunter.app => ENV["BUGHUNTER_PATH"]
49
50   match '/facts' => redirect("/")
51   match '/users/:id/:slug' => redirect("/users/%{slug}"), :as => :user_se_url, :id => /\d+/
52   resources :users do
53     collection do
54       get :autocomplete_for_user_login
55       post :connect
56       get :follow_tags
57       get :unfollow_tags
58       get :leave
59       get :join
60       post :connect
61       get :new_password
62     end
63
64     member do
65       get :feed
66       get :expertise
67       get :preferred
68       get :by_me
69       get :contributed
70       post :unfollow
71       post :follow
72       get :answers
73       get :follows
74       get :activity
75     end
76   end
77
78   resources :badges
79
80   resources :searches, :path => "search", :as => "search"
81
82   resources :pages do
83     member do
84       get :js
85       get :css
86     end
87   end
88
89   resources :announcements do
90     collection do
91       get :hide
92     end
93   end
94
95   resources :imports do
96     collection do
97       post :send_confirmation
98     end
99   end
100
101   get '/questions/:id/:slug' => 'questions#show', :as => :se_url, :id => /\d+/
102   post '/questions/:id/start_reward' => "reward#start", :as => :start_reward
103   get '/questions/:id/close_reward' => "reward#close", :as => :close_reward
104
105   match '/answers(.format)' => 'answers#index', :as => :answers
106
107   scope('questions') do
108     resources :tags, :constraints => { :id => /\S+/ }
109   end
110
111   match 'questions/unanswered' => redirect("/questions?unanswered=1")
112
113   resources :questions do
114     resources :votes
115     resources :flags
116     collection do
117       get :tags_for_autocomplete
118       get :related_questions
119       get :random
120
121       match '/:filter' => 'questions#index', :as => :filtered, :constraints => { :filter => /all|unanswered|by_me|feed|preferred|contributed|expertise/ }
122     end
123
124     member do
125       get :solve
126       get :unsolve
127       get :flag
128       get :follow
129       get :unfollow
130       get :history
131       get :revert
132       get :diff
133       get :move
134       put :move_to
135       get :retag
136       put :retag_to
137       get :remove_attachment
138       get :twitter_share
139     end
140
141     resources :comments do
142       resources :votes
143     end
144
145     resources :answers do
146       resources :votes
147       resources :flags
148       member do
149         get :favorite
150         get :unfavorite
151         get :flag
152         get :history
153         get :diff
154         get :revert
155       end
156
157       resources :comments do
158         resources :votes
159       end
160     end
161
162     resources :close_requests
163     resources :open_requests
164   end
165
166   match 'questions/tags/:tags' => 'tags#show', :as => :question_tag
167   match 'questions/tagged/:tags' => redirect { |env, req| "/questions/tags/#{req.params[:tags].gsub(' ', '+')}" }, :tags => /.+/ #support se url
168
169   resources :groups do
170     collection do
171       get :autocomplete_for_group_slug
172       get :add_to_facebook
173       post :join
174     end
175
176     member do
177       get :allow_custom_ads
178       get :disallow_custom_ads
179       post :close
180       post :update_card
181       get :accept
182
183       post :upgrade
184       post :downgrade
185       post :set_columns
186     end
187   end
188
189   resources :invitations do
190     member do
191       post :revoke
192       post :resend
193     end
194   end
195
196   resources :invoices do
197     member do
198       get :success
199     end
200     collection do
201       get :auto_update
202       get :upcoming
203     end
204   end
205
206   scope '/manage' do
207     resources :widgets do
208       member do
209         post :move
210       end
211     end
212
213     resources :themes do
214       member do
215         get :remove_bg_image
216         put :apply
217         get :ready
218         get :download
219       end
220
221       collection do
222         post :import
223       end
224     end
225     resources :constrains_configs
226     resources :members
227   end
228
229   scope '/manage', :as => 'manage' do
230     controller 'admin/manage' do
231       match 'edit_card' => :edit_card
232       match 'social' => :social
233       match 'properties' => :properties
234       match 'theme' => :theme
235       match 'actions' => :actions
236       match 'stats' => :stats
237       match 'reputation' => :reputation
238       match 'content' => :content
239       match 'invitations' => :invitations
240       match 'appearance' => :appearance
241       match 'access' => :access
242       match 'close_group' => :close_group
243     end
244   end
245   match '/manage/properties/:tab' => 'admin/manage#properties', :as => :manage_properties_tab
246
247   namespace :moderate do
248     resources :questions do
249       collection do
250         get :flagged
251         get :to_close
252         get :to_open
253         post :manage
254       end
255       member do
256         get :banning
257         put :ban
258
259         get :closing
260         put :close
261         get :opening
262         put :open
263       end
264     end
265     resources :answers do
266       collection do
267         post :manage
268       end
269       member do
270         get :banning
271         put :ban
272       end
273     end
274     resources :users
275   end
276
277   match '/moderate' => 'moderate/questions#index'
278 #   match '/search' => 'searches#index', :as => :search
279   match '/about' => 'groups#show', :as => :about
280   root :to => 'questions#index'
281   #match '/:controller(/:action(/:id))'
282   match '*a', :to => 'public_errors#routing'
283 end