discourse_api 0.34.0 → 0.35.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.rubocop.yml +6 -0
  4. data/.travis.yml +10 -4
  5. data/CHANGELOG.md +12 -0
  6. data/Gemfile +1 -0
  7. data/Guardfile +2 -1
  8. data/Rakefile +7 -2
  9. data/discourse_api.gemspec +23 -22
  10. data/examples/backups.rb +1 -0
  11. data/examples/badges.rb +1 -0
  12. data/examples/category.rb +1 -0
  13. data/examples/change_topic_status.rb +3 -3
  14. data/examples/create_private_message.rb +1 -0
  15. data/examples/create_topic.rb +1 -0
  16. data/examples/create_update_category.rb +1 -1
  17. data/examples/create_user.rb +1 -0
  18. data/examples/dashboard.rb +3 -2
  19. data/examples/disposable_invite_tokens.rb +1 -0
  20. data/examples/example.rb +1 -0
  21. data/examples/group_set_user_notification_level.rb +1 -1
  22. data/examples/groups.rb +1 -0
  23. data/examples/invite_users.rb +1 -0
  24. data/examples/post_action.rb +1 -0
  25. data/examples/search.rb +1 -0
  26. data/examples/sent_private_messages.rb +1 -0
  27. data/examples/sso.rb +1 -0
  28. data/examples/topic_lists.rb +1 -0
  29. data/examples/update_user.rb +1 -0
  30. data/examples/upload_file.rb +1 -0
  31. data/lib/discourse_api.rb +1 -0
  32. data/lib/discourse_api/api/api_key.rb +3 -2
  33. data/lib/discourse_api/api/backups.rb +1 -0
  34. data/lib/discourse_api/api/badges.rb +5 -4
  35. data/lib/discourse_api/api/categories.rb +16 -15
  36. data/lib/discourse_api/api/dashboard.rb +7 -6
  37. data/lib/discourse_api/api/email.rb +1 -0
  38. data/lib/discourse_api/api/groups.rb +11 -10
  39. data/lib/discourse_api/api/invite.rb +4 -3
  40. data/lib/discourse_api/api/notifications.rb +2 -1
  41. data/lib/discourse_api/api/params.rb +3 -2
  42. data/lib/discourse_api/api/posts.rb +7 -6
  43. data/lib/discourse_api/api/private_messages.rb +4 -3
  44. data/lib/discourse_api/api/search.rb +2 -1
  45. data/lib/discourse_api/api/site_settings.rb +3 -2
  46. data/lib/discourse_api/api/sso.rb +3 -2
  47. data/lib/discourse_api/api/tags.rb +1 -0
  48. data/lib/discourse_api/api/topics.rb +17 -16
  49. data/lib/discourse_api/api/uploads.rb +4 -3
  50. data/lib/discourse_api/api/user_actions.rb +3 -2
  51. data/lib/discourse_api/api/users.rb +23 -20
  52. data/lib/discourse_api/client.rb +8 -7
  53. data/lib/discourse_api/error.rb +2 -1
  54. data/lib/discourse_api/single_sign_on.rb +1 -0
  55. data/lib/discourse_api/version.rb +2 -1
  56. data/spec/discourse_api/api/users_spec.rb +13 -13
  57. metadata +38 -25
  58. data/routes.txt +0 -203
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseApi
2
3
  class DiscourseError < StandardError
3
4
  attr_reader :response
@@ -15,7 +16,7 @@ module DiscourseApi
15
16
  #
16
17
  # @param exception [Exception, String]
17
18
  # @return [DiscourseApi::Error]
18
- def initialize(exception=$!)
19
+ def initialize(exception = $!)
19
20
  @wrapped_exception = exception
20
21
  exception.respond_to?(:message) ? super(exception.message) : super(exception.to_s)
21
22
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'base64'
2
3
  require 'rack'
3
4
  require 'openssl'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module DiscourseApi
2
- VERSION = "0.34.0"
3
+ VERSION = "0.35.0"
3
4
  end
@@ -44,25 +44,25 @@ describe DiscourseApi::API::Users do
44
44
  describe "#update_avatar" do
45
45
  before do
46
46
  stub_post("http://localhost:3000/uploads").to_return(body: fixture("upload_avatar.json"), headers: { content_type: "application/json" })
47
- stub_put("http://localhost:3000/users/test_user/preferences/avatar/pick").to_return(body: fixture("user_update_avatar_success.json"), headers: { content_type: "application/json" })
47
+ stub_put("http://localhost:3000/u/test_user/preferences/avatar/pick").to_return(body: fixture("user_update_avatar_success.json"), headers: { content_type: "application/json" })
48
48
  end
49
49
 
50
50
  it "uploads an image" do
51
51
  sam = "https://meta-discourse.global.ssl.fastly.net/user_avatar/meta.discourse.org/sam/120/5243.png"
52
- args = { username: 'test_user', url: sam }
53
- response = subject.update_avatar(args)
52
+ args = { url: sam }
53
+ response = subject.update_avatar('test_user', args)
54
54
  expect(response[:body]['success']).to eq('OK')
55
55
  end
56
56
  end
57
57
 
58
58
  describe "#update_email" do
59
59
  before do
60
- stub_put("http://localhost:3000/users/fake_user/preferences/email").to_return(body: fixture("user_update_user.json"), headers: { content_type: "application/json" })
60
+ stub_put("http://localhost:3000/u/fake_user/preferences/email").to_return(body: fixture("user_update_user.json"), headers: { content_type: "application/json" })
61
61
  end
62
62
 
63
63
  it "makes the put request" do
64
64
  subject.update_email("fake_user", "fake_user_2@example.com")
65
- expect(a_put("http://localhost:3000/users/fake_user/preferences/email")).to have_been_made
65
+ expect(a_put("http://localhost:3000/u/fake_user/preferences/email")).to have_been_made
66
66
  end
67
67
 
68
68
  it "returns success" do
@@ -73,14 +73,14 @@ describe DiscourseApi::API::Users do
73
73
 
74
74
  describe "#update_user" do
75
75
  before do
76
- stub_put("http://localhost:3000/users/fake_user").to_return(body: fixture("user_update_user.json"), headers: { content_type: "application/json" })
76
+ stub_put("http://localhost:3000/u/fake_user").to_return(body: fixture("user_update_user.json"), headers: { content_type: "application/json" })
77
77
  end
78
78
 
79
79
  it "makes the put request" do
80
80
  subject.api_key = 'test_d7fd0429940'
81
81
  subject.api_username = 'test_user'
82
82
  subject.update_user("fake_user", name: "Fake User 2")
83
- expect(a_put("http://localhost:3000/users/fake_user")).to have_been_made
83
+ expect(a_put("http://localhost:3000/u/fake_user")).to have_been_made
84
84
  end
85
85
 
86
86
  it "returns success" do
@@ -93,12 +93,12 @@ describe DiscourseApi::API::Users do
93
93
 
94
94
  describe "#update_username" do
95
95
  before do
96
- stub_put("http://localhost:3000/users/fake_user/preferences/username").to_return(body: fixture("user_update_username.json"), headers: { content_type: "application/json" })
96
+ stub_put("http://localhost:3000/u/fake_user/preferences/username").to_return(body: fixture("user_update_username.json"), headers: { content_type: "application/json" })
97
97
  end
98
98
 
99
99
  it "makes the put request" do
100
100
  subject.update_username("fake_user", "fake_user_2")
101
- expect(a_put("http://localhost:3000/users/fake_user/preferences/username")).to have_been_made
101
+ expect(a_put("http://localhost:3000/u/fake_user/preferences/username")).to have_been_made
102
102
  end
103
103
 
104
104
  it "returns the updated username" do
@@ -192,15 +192,15 @@ describe DiscourseApi::API::Users do
192
192
  end
193
193
 
194
194
  it "makes the correct put request" do
195
- params = { user_id: 2, level: 2 }
196
- subject.update_trust_level(params)
195
+ params = { level: 2 }
196
+ subject.update_trust_level(2, params)
197
197
  url = "http://localhost:3000/admin/users/2/trust_level"
198
198
  expect(a_put(url)).to have_been_made
199
199
  end
200
200
 
201
201
  it "updates the trust_level" do
202
- params = { user_id: 2, level: 2 }
203
- admin_user = subject.update_trust_level(params)
202
+ params = { level: 2 }
203
+ admin_user = subject.update_trust_level(2, params)
204
204
  expect(admin_user).to be_a Hash
205
205
  expect(admin_user['admin_user']).to have_key('trust_level')
206
206
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discourse_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.34.0
4
+ version: 0.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-04-02 00:00:00.000000000 Z
14
+ date: 2019-05-15 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
@@ -61,98 +61,98 @@ dependencies:
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: '1.12'
64
+ version: '2.0'
65
65
  type: :development
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '1.12'
71
+ version: '2.0'
72
72
  - !ruby/object:Gem::Dependency
73
- name: rake
73
+ name: guard
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
76
  - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: '11.1'
78
+ version: '2.14'
79
79
  type: :development
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - "~>"
84
84
  - !ruby/object:Gem::Version
85
- version: '11.1'
85
+ version: '2.14'
86
86
  - !ruby/object:Gem::Dependency
87
- name: rspec
87
+ name: guard-rspec
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - "~>"
91
91
  - !ruby/object:Gem::Version
92
- version: '3.4'
92
+ version: '4.7'
93
93
  type: :development
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '3.4'
99
+ version: '4.7'
100
100
  - !ruby/object:Gem::Dependency
101
- name: webmock
101
+ name: rake
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: '2.0'
106
+ version: '11.1'
107
107
  type: :development
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: '2.0'
113
+ version: '11.1'
114
114
  - !ruby/object:Gem::Dependency
115
- name: guard-rspec
115
+ name: rb-inotify
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
118
  - - "~>"
119
119
  - !ruby/object:Gem::Version
120
- version: '4.7'
120
+ version: '0.9'
121
121
  type: :development
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
125
  - - "~>"
126
126
  - !ruby/object:Gem::Version
127
- version: '4.7'
127
+ version: '0.9'
128
128
  - !ruby/object:Gem::Dependency
129
- name: guard
129
+ name: rspec
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: '2.14'
134
+ version: '3.4'
135
135
  type: :development
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: '2.14'
141
+ version: '3.4'
142
142
  - !ruby/object:Gem::Dependency
143
- name: rb-inotify
143
+ name: rubocop
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - "~>"
147
147
  - !ruby/object:Gem::Version
148
- version: '0.9'
148
+ version: 0.67.2
149
149
  type: :development
150
150
  prerelease: false
151
151
  version_requirements: !ruby/object:Gem::Requirement
152
152
  requirements:
153
153
  - - "~>"
154
154
  - !ruby/object:Gem::Version
155
- version: '0.9'
155
+ version: 0.67.2
156
156
  - !ruby/object:Gem::Dependency
157
157
  name: simplecov
158
158
  requirement: !ruby/object:Gem::Requirement
@@ -167,6 +167,20 @@ dependencies:
167
167
  - - "~>"
168
168
  - !ruby/object:Gem::Version
169
169
  version: '0.11'
170
+ - !ruby/object:Gem::Dependency
171
+ name: webmock
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: '2.0'
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '2.0'
170
184
  description: Discourse API
171
185
  email:
172
186
  - sam.saffron@gmail.com
@@ -178,6 +192,7 @@ extensions: []
178
192
  extra_rdoc_files: []
179
193
  files:
180
194
  - ".gitignore"
195
+ - ".rubocop.yml"
181
196
  - ".travis.yml"
182
197
  - CHANGELOG.md
183
198
  - Gemfile
@@ -232,7 +247,6 @@ files:
232
247
  - lib/discourse_api/error.rb
233
248
  - lib/discourse_api/single_sign_on.rb
234
249
  - lib/discourse_api/version.rb
235
- - routes.txt
236
250
  - spec/discourse_api/api/api_key_spec.rb
237
251
  - spec/discourse_api/api/backups_spec.rb
238
252
  - spec/discourse_api/api/badges_spec.rb
@@ -313,8 +327,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
327
  - !ruby/object:Gem::Version
314
328
  version: '0'
315
329
  requirements: []
316
- rubyforge_project:
317
- rubygems_version: 2.7.8
330
+ rubygems_version: 3.0.1
318
331
  signing_key:
319
332
  specification_version: 4
320
333
  summary: Allows access to the Discourse API
data/routes.txt DELETED
@@ -1,203 +0,0 @@
1
- forums GET /forums(.:format) forums#index
2
- POST /forums(.:format) forums#create
3
- new_forum GET /forums/new(.:format) forums#new
4
- edit_forum GET /forums/:id/edit(.:format) forums#edit
5
- forum GET /forums/:id(.:format) forums#show
6
- PUT /forums/:id(.:format) forums#update
7
- DELETE /forums/:id(.:format) forums#destroy
8
- srv_status GET /srv/status(.:format) forums#status
9
- admin_users_sync_sso POST /admin/users/sync_sso(.:format) admin/users#sync_sso
10
- generate_key_admin_api_index POST /admin/api/generate_key(.:format) admin/api#generate_key
11
- admin_api_index GET /admin/api(.:format) admin/api#index
12
- email_preferences_redirect GET /email_preferences(.:format) email#preferences_redirect
13
- email_unsubscribe GET /email/unsubscribe/:key(.:format) email#unsubscribe
14
- email_resubscribe POST /email/resubscribe/:key(.:format) email#resubscribe
15
- forgot_password_session_index POST /session/forgot_password(.:format) session#forgot_password {:id=>/[A-Za-z0-9\_]+/}
16
- session_index POST /session(.:format) session#create {:id=>/[A-Za-z0-9\_]+/}
17
- session DELETE /session/:id(.:format) session#destroy {:id=>/[A-Za-z0-9\_]+/}
18
- session_csrf GET /session/csrf(.:format) session#csrf
19
- GET /composer-messages(.:format) composer_messages#index
20
- check_username_users GET /users/check_username(.:format) users#check_username
21
- is_local_username_users GET /users/is_local_username(.:format) users#is_local_username
22
- users GET /users(.:format) users#index
23
- POST /users(.:format) users#create
24
- new_user GET /users/new(.:format) users#new
25
- edit_user GET /users/:id/edit(.:format) users#edit
26
- user DELETE /users/:id(.:format) users#destroy
27
- static_index GET /static(.:format) static#index
28
- POST /static(.:format) static#create
29
- new_static GET /static/new(.:format) static#new
30
- edit_static GET /static/:id/edit(.:format) static#edit
31
- static GET /static/:id(.:format) static#show
32
- PUT /static/:id(.:format) static#update
33
- DELETE /static/:id(.:format) static#destroy
34
- login POST /login(.:format) static#enter
35
- GET /login(.:format) static#show {:id=>"login"}
36
- faq GET /faq(.:format) static#show {:id=>"faq"}
37
- tos GET /tos(.:format) static#show {:id=>"tos"}
38
- privacy GET /privacy(.:format) static#show {:id=>"privacy"}
39
- users_search_users GET /users/search/users(.:format) users#search_users
40
- GET /users/password-reset/:token(.:format) users#password_reset
41
- PUT /users/password-reset/:token(.:format) users#password_reset
42
- GET /users/activate-account/:token(.:format) users#activate_account
43
- GET /users/authorize-email/:token(.:format) users#authorize_email
44
- users_hp GET /users/hp(.:format) users#get_honeypot_value
45
- user_preferences GET /user_preferences(.:format) users#user_preferences_redirect
46
- GET /users/:username/private-messages(.:format) user_actions#private_messages {:username=>/[A-Za-z0-9\_]+/}
47
- GET /users/:username/private-messages/:filter(.:format) user_actions#private_messages {:username=>/[A-Za-z0-9\_]+/}
48
- GET /users/:username(.:format) users#show {:username=>/[A-Za-z0-9\_]+/}
49
- PUT /users/:username(.:format) users#update {:username=>/[A-Za-z0-9\_]+/}
50
- email_preferences GET /users/:username/preferences(.:format) users#preferences {:username=>/[A-Za-z0-9\_]+/}
51
- GET /users/:username/preferences/email(.:format) users#preferences {:username=>/[A-Za-z0-9\_]+/}
52
- PUT /users/:username/preferences/email(.:format) users#change_email {:username=>/[A-Za-z0-9\_]+/}
53
- GET /users/:username/preferences/about-me(.:format) users#preferences {:username=>/[A-Za-z0-9\_]+/}
54
- GET /users/:username/preferences/username(.:format) users#preferences {:username=>/[A-Za-z0-9\_]+/}
55
- PUT /users/:username/preferences/username(.:format) users#username {:username=>/[A-Za-z0-9\_]+/}
56
- GET /users/:username/avatar(/:size)(.:format) users#avatar {:username=>/[A-Za-z0-9\_]+/}
57
- POST /users/:username/preferences/avatar(.:format) users#upload_avatar {:username=>/[A-Za-z0-9\_]+/}
58
- PUT /users/:username/preferences/avatar/toggle(.:format) users#toggle_avatar {:username=>/[A-Za-z0-9\_]+/}
59
- GET /users/:username/invited(.:format) users#invited {:username=>/[A-Za-z0-9\_]+/}
60
- POST /users/:username/send_activation_email(.:format) users#send_activation_email {:username=>/[A-Za-z0-9\_]+/}
61
- GET /users/:username/activity(.:format) users#show {:username=>/[A-Za-z0-9\_]+/}
62
- GET /users/:username/activity/:filter(.:format) users#show {:username=>/[A-Za-z0-9\_]+/}
63
- GET /uploads/:site/:id/:sha.:extension(.:format) uploads#show {:site=>/\w+/, :id=>/\d+/, :sha=>/[a-z0-9]{15,16}/i, :extension=>/\w{2,}/}
64
- uploads POST /uploads(.:format) uploads#create
65
- GET /posts/by_number/:topic_id/:post_number(.:format) posts#by_number
66
- GET /posts/:id/reply-history(.:format) posts#reply_history
67
- post_versions GET /posts/:post_id/versions(.:format) posts#versions
68
- post_bookmark PUT /posts/:post_id/bookmark(.:format) posts#bookmark
69
- post_replies GET /posts/:post_id/replies(.:format) posts#replies
70
- post_recover PUT /posts/:post_id/recover(.:format) posts#recover
71
- destroy_many_posts DELETE /posts/destroy_many(.:format) posts#destroy_many
72
- posts GET /posts(.:format) posts#index
73
- POST /posts(.:format) posts#create
74
- new_post GET /posts/new(.:format) posts#new
75
- edit_post GET /posts/:id/edit(.:format) posts#edit
76
- post GET /posts/:id(.:format) posts#show
77
- PUT /posts/:id(.:format) posts#update
78
- DELETE /posts/:id(.:format) posts#destroy
79
- GET /p/:post_id/:user_id(.:format) posts#short_link
80
- notifications GET /notifications(.:format) notifications#index
81
- POST /notifications(.:format) notifications#create
82
- new_notification GET /notifications/new(.:format) notifications#new
83
- edit_notification GET /notifications/:id/edit(.:format) notifications#edit
84
- notification GET /notifications/:id(.:format) notifications#show
85
- PUT /notifications/:id(.:format) notifications#update
86
- DELETE /notifications/:id(.:format) notifications#destroy
87
- GET|POST /auth/:provider/callback(.:format) users/omniauth_callbacks#complete
88
- auth_failure GET|POST /auth/failure(.:format) users/omniauth_callbacks#failure
89
- track_clicks GET /clicks/track(.:format) clicks#track
90
- clicks GET /clicks(.:format) clicks#index
91
- POST /clicks(.:format) clicks#create
92
- new_click GET /clicks/new(.:format) clicks#new
93
- edit_click GET /clicks/:id/edit(.:format) clicks#edit
94
- click GET /clicks/:id(.:format) clicks#show
95
- PUT /clicks/:id(.:format) clicks#update
96
- DELETE /clicks/:id(.:format) clicks#destroy
97
- excerpt GET /excerpt(.:format) excerpt#show
98
- users_post_actions GET /post_actions/users(.:format) post_actions#users
99
- clear_flags_post_actions POST /post_actions/clear_flags(.:format) post_actions#clear_flags
100
- post_actions GET /post_actions(.:format) post_actions#index
101
- POST /post_actions(.:format) post_actions#create
102
- new_post_action GET /post_actions/new(.:format) post_actions#new
103
- edit_post_action GET /post_actions/:id/edit(.:format) post_actions#edit
104
- post_action GET /post_actions/:id(.:format) post_actions#show
105
- PUT /post_actions/:id(.:format) post_actions#update
106
- DELETE /post_actions/:id(.:format) post_actions#destroy
107
- user_actions GET /user_actions(.:format) user_actions#index
108
- POST /user_actions(.:format) user_actions#create
109
- new_user_action GET /user_actions/new(.:format) user_actions#new
110
- edit_user_action GET /user_actions/:id/edit(.:format) user_actions#edit
111
- user_action GET /user_actions/:id(.:format) user_actions#show
112
- PUT /user_actions/:id(.:format) user_actions#update
113
- DELETE /user_actions/:id(.:format) user_actions#destroy
114
- categories GET /categories(.:format) categories#index
115
- POST /categories(.:format) categories#create
116
- new_category GET /categories/new(.:format) categories#new
117
- edit_category GET /categories/:id/edit(.:format) categories#edit
118
- category PUT /categories/:id(.:format) categories#update
119
- DELETE /categories/:id(.:format) categories#destroy
120
- GET /category/:id/show(.:format) categories#show
121
- category_feed GET /category/:category.rss(.:format) list#category_feed {:format=>:rss}
122
- category_list GET /category/:category(.:format) list#category
123
- category_list_more GET /category/:category/more(.:format) list#category
124
- popular GET /popular(.:format) list#popular_redirect
125
- popular_more GET /popular/more(.:format) list#popular_redirect
126
- latest_feed GET /latest.rss(.:format) list#latest_feed {:format=>:rss, :filter=>:latest}
127
- hot_feed GET /hot.rss(.:format) list#hot_feed {:format=>:rss, :filter=>:hot}
128
- latest GET /latest(.:format) list#latest
129
- latest_more GET /latest/more(.:format) list#latest
130
- hot GET /hot(.:format) list#hot
131
- hot_more GET /hot/more(.:format) list#hot
132
- favorited GET /favorited(.:format) list#favorited
133
- favorited_more GET /favorited/more(.:format) list#favorited
134
- read GET /read(.:format) list#read
135
- read_more GET /read/more(.:format) list#read
136
- posted GET /posted(.:format) list#posted
137
- posted_more GET /posted/more(.:format) list#posted
138
- unread GET /unread(.:format) list#unread
139
- unread_more GET /unread/more(.:format) list#unread
140
- new GET /new(.:format) list#new
141
- new_more GET /new/more(.:format) list#new
142
- search GET /search(.:format) search#query
143
- GET /t/:id(.:format) topics#show
144
- DELETE /t/:id(.:format) topics#destroy
145
- PUT /t/:id(.:format) topics#update
146
- t POST /t(.:format) topics#create
147
- topics_timings POST /topics/timings(.:format) topics#timings
148
- topics_similar_to GET /topics/similar_to(.:format) topics#similar_to
149
- topics_by GET /topics/created-by/:username(.:format) list#topics_by {:username=>/[A-Za-z0-9\_]+/}
150
- topics_private_messages GET /topics/private-messages/:username(.:format) list#private_messages {:username=>/[A-Za-z0-9\_]+/}
151
- topics_private_messages_sent GET /topics/private-messages-sent/:username(.:format) list#private_messages_sent {:username=>/[A-Za-z0-9\_]+/}
152
- topics_private_messages_unread GET /topics/private-messages-unread/:username(.:format) list#private_messages_unread {:username=>/[A-Za-z0-9\_]+/}
153
- GET /t/:slug/:topic_id/wordpress(.:format) topics#wordpress {:topic_id=>/\d+/}
154
- GET /t/:slug/:topic_id/moderator-liked(.:format) topics#moderator_liked {:topic_id=>/\d+/}
155
- GET /t/:topic_id/wordpress(.:format) topics#wordpress {:topic_id=>/\d+/}
156
- GET /t/:slug/:topic_id/best_of(.:format) topics#show {:topic_id=>/\d+/, :post_number=>/\d+/, :best_of=>true}
157
- GET /t/:topic_id/best_of(.:format) topics#show {:topic_id=>/\d+/, :post_number=>/\d+/}
158
- PUT /t/:slug/:topic_id(.:format) topics#update {:topic_id=>/\d+/}
159
- PUT /t/:slug/:topic_id/star(.:format) topics#star {:topic_id=>/\d+/}
160
- PUT /t/:topic_id/star(.:format) topics#star {:topic_id=>/\d+/}
161
- PUT /t/:slug/:topic_id/status(.:format) topics#status {:topic_id=>/\d+/}
162
- PUT /t/:topic_id/status(.:format) topics#status {:topic_id=>/\d+/}
163
- PUT /t/:topic_id/clear-pin(.:format) topics#clear_pin {:topic_id=>/\d+/}
164
- PUT /t/:topic_id/mute(.:format) topics#mute {:topic_id=>/\d+/}
165
- PUT /t/:topic_id/unmute(.:format) topics#unmute {:topic_id=>/\d+/}
166
- PUT /t/:topic_id/autoclose(.:format) topics#autoclose {:topic_id=>/\d+/}
167
- PUT /t/:topic_id/remove-allowed-user(.:format) topics#remove_allowed_user {:topic_id=>/\d+/}
168
- PUT /t/:topic_id/recover(.:format) topics#recover {:topic_id=>/\d+/}
169
- GET /t/:topic_id/:post_number(.:format) topics#show {:topic_id=>/\d+/, :post_number=>/\d+/}
170
- GET /t/:slug/:topic_id.rss(.:format) topics#feed {:topic_id=>/\d+/, :format=>:rss}
171
- GET /t/:slug/:topic_id(.:format) topics#show {:topic_id=>/\d+/}
172
- GET /t/:slug/:topic_id/:post_number(.:format) topics#show {:topic_id=>/\d+/, :post_number=>/\d+/}
173
- GET /t/:topic_id/posts(.:format) topics#posts {:topic_id=>/\d+/}
174
- POST /t/:topic_id/timings(.:format) topics#timings {:topic_id=>/\d+/}
175
- POST /t/:topic_id/invite(.:format) topics#invite {:topic_id=>/\d+/}
176
- POST /t/:topic_id/move-posts(.:format) topics#move_posts {:topic_id=>/\d+/}
177
- POST /t/:topic_id/merge-topic(.:format) topics#merge_topic {:topic_id=>/\d+/}
178
- DELETE /t/:topic_id/timings(.:format) topics#destroy_timings {:topic_id=>/\d+/}
179
- POST /t/:topic_id/notifications(.:format) topics#set_notifications {:topic_id=>/\d+/}
180
- GET /raw/:topic_id(/:post_number)(.:format) posts#markdown
181
- invites GET /invites(.:format) invites#index
182
- POST /invites(.:format) invites#create
183
- new_invite GET /invites/new(.:format) invites#new
184
- edit_invite GET /invites/:id/edit(.:format) invites#edit
185
- invite GET /invites/:id(.:format) invites#show
186
- PUT /invites/:id(.:format) invites#update
187
- DELETE /invites/:id(.:format) invites#destroy
188
- DELETE /invites(.:format) invites#destroy
189
- onebox GET /onebox(.:format) onebox#show
190
- error GET /error(.:format) forums#error
191
- GET /message-bus/poll(.:format) message_bus#poll
192
- draft GET /draft(.:format) draft#show
193
- POST /draft(.:format) draft#update
194
- DELETE /draft(.:format) draft#destroy
195
- GET /robots.txt(.:format) robots_txt#index
196
- list_latest / list#latest
197
- list_hot / list#hot
198
- list_unread / list#unread
199
- list_new / list#new
200
- list_favorited / list#favorited
201
- list_read / list#read
202
- list_posted / list#posted
203
- categories_index / categories#index