discourse_api 0.25.0 → 0.26.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e90f0e873e3f4704e132a4be3b7bc5982c804bf71536c426f90a6008bcf68765
4
- data.tar.gz: ab6e8ff566a35424fd5baf81641fef179a73978c7b860fda97dd34c62e597599
3
+ metadata.gz: 34fb79c6ebf88b13b27124084931d6cd5f9123e00d322ab7dec1378313a1b7ec
4
+ data.tar.gz: 2a5eac533a5798735fae8fbb0e6e7d9293b679bfaac7baf19129994a2f079d4b
5
5
  SHA512:
6
- metadata.gz: ae8f232c209917ece93c461619873da8e9883f333345a7d5000637aa5a548cc32044fea30e3b5d815910748fafd49cde11969f829d09ecb6e9647a3c2290bd91
7
- data.tar.gz: 9980a0850e4597bbc93cd359d38de90f9b3396eed81d73c14b842e7347d2b65bca4db76c5028e441bff67fedb6ce00cfaf2044da37723624a02d327ebe6a0fc3
6
+ metadata.gz: 3dd703fefbaae4b70f8011754faef120e430fc6dafcca5bef8020d6618c75d10920caa7455dbcb551b2f0c2105618a94a2c4590d02dcbbe89c1d51b2448f45ea
7
+ data.tar.gz: 60c1008147db8883a5f0afb0f9f497c22ab8f9b4be06199f25cb2dc94edd7fa14768a9662a06fd5e369cb28187d31eb52289d9ffc7d59b2c2c96959436c62c9d
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## [0.26.0] - 2018-09-10
6
+ ### Added
7
+ - Added user `user_actions` endpoint so you can retrieve `user_replies` and
8
+ `user_topics_and_replies`
9
+
5
10
  ## [0.25.0] - 2018-08-15
6
11
  ### Added
7
12
  - Added ability to rescue certain error classes and inspect the response object
@@ -0,0 +1,17 @@
1
+ module DiscourseApi
2
+ module API
3
+ module UserActions
4
+ def user_replies(username)
5
+ params = {"username": username, "filter": '5'}
6
+ response = get("/user_actions.json", params)
7
+ response.body["user_actions"]
8
+ end
9
+
10
+ def user_topics_and_replies(username)
11
+ params = {"username": username, "filter": "4,5"}
12
+ response = get("/user_actions.json", params)
13
+ response.body["user_actions"]
14
+ end
15
+ end
16
+ end
17
+ end
@@ -20,6 +20,7 @@ require 'discourse_api/api/api_key'
20
20
  require 'discourse_api/api/backups'
21
21
  require 'discourse_api/api/dashboard'
22
22
  require 'discourse_api/api/uploads'
23
+ require 'discourse_api/api/user_actions'
23
24
 
24
25
  module DiscourseApi
25
26
  class Client
@@ -43,6 +44,7 @@ module DiscourseApi
43
44
  include DiscourseApi::API::Backups
44
45
  include DiscourseApi::API::Dashboard
45
46
  include DiscourseApi::API::Uploads
47
+ include DiscourseApi::API::UserActions
46
48
 
47
49
  def initialize(host, api_key = nil, api_username = nil)
48
50
  raise ArgumentError, 'host needs to be defined' if host.nil? || host.empty?
@@ -1,3 +1,3 @@
1
1
  module DiscourseApi
2
- VERSION = "0.25.0"
2
+ VERSION = "0.26.0"
3
3
  end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe DiscourseApi::API::UserActions do
4
+ subject { DiscourseApi::Client.new("http://localhost:3000", "test_d7fd0429940", "test_user") }
5
+
6
+ describe "#user_replies" do
7
+ before do
8
+ stub_get("http://localhost:3000/user_actions.json?api_key=test_d7fd0429940&api_username=test_user&username=testuser&filter=5").to_return(body: fixture("replies.json"), headers: { content_type: "application/json" })
9
+ end
10
+
11
+ it "requests the correct resource" do
12
+ subject.user_replies("testuser")
13
+ expect(a_get("http://localhost:3000/user_actions.json?api_key=test_d7fd0429940&api_username=test_user&username=testuser&filter=5")).to have_been_made
14
+ end
15
+
16
+ it "returns the requested user" do
17
+ replies = subject.user_replies("testuser")
18
+ expect(replies).to be_an Array
19
+ end
20
+ end
21
+
22
+ describe "#user_topics_and_replies" do
23
+ before do
24
+ stub_get("http://localhost:3000/user_actions.json?api_key=test_d7fd0429940&api_username=test_user&username=testuser&filter=4,5").to_return(body: fixture("replies_and_topics.json"), headers: { content_type: "application/json" })
25
+ end
26
+
27
+ it "requests the correct resource" do
28
+ subject.user_topics_and_replies("testuser")
29
+ expect(a_get("http://localhost:3000/user_actions.json?api_key=test_d7fd0429940&api_username=test_user&username=testuser&filter=4,5")).to have_been_made
30
+ end
31
+
32
+ it "returns the requested user" do
33
+ replies = subject.user_topics_and_replies("testuser")
34
+ expect(replies).to be_an Array
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,33 @@
1
+ {
2
+ "user_actions": [
3
+ {
4
+ "action_type": 5,
5
+ "created_at": "2016-06-29T20:27:55.767Z",
6
+ "excerpt": "Test Reply #1",
7
+ "avatar_template": "/letter_avatar_proxy/v2/letter/s/71c47a/{size}.png",
8
+ "acting_avatar_template": "/letter_avatar_proxy/v2/letter/s/71c47a/{size}.png",
9
+ "slug": "test-topic",
10
+ "topic_id": 39,
11
+ "target_user_id": 11,
12
+ "target_name": "Test User",
13
+ "target_username": "testuser",
14
+ "post_number": 3,
15
+ "post_id": 48,
16
+ "reply_to_post_number": 2,
17
+ "username": "testuser",
18
+ "name": "Test User",
19
+ "user_id": 11,
20
+ "acting_username": "testuser",
21
+ "acting_name": "Test User",
22
+ "acting_user_id": 11,
23
+ "title": "Test Topic",
24
+ "deleted": false,
25
+ "hidden": false,
26
+ "post_type": 1,
27
+ "action_code": null,
28
+ "category_id": 9,
29
+ "closed": false,
30
+ "archived": false
31
+ }
32
+ ]
33
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "user_actions": [
3
+ {
4
+ "action_type": 5,
5
+ "created_at": "2016-08-10T14:52:49.660Z",
6
+ "excerpt": "test excerpt",
7
+ "avatar_template": "/user_avatar/localhost/avatar/{size}/59_1.png",
8
+ "acting_avatar_template": "/user_avatar/localhost/avatar/{size}/59_1.png",
9
+ "slug": "test-topic",
10
+ "topic_id": 11,
11
+ "target_user_id": 2,
12
+ "target_name": "Test User",
13
+ "target_username": "testuser",
14
+ "post_number": 2,
15
+ "post_id": 19,
16
+ "reply_to_post_number": null,
17
+ "username": "testuser",
18
+ "name": "Test User",
19
+ "user_id": 2,
20
+ "acting_username": "testuser",
21
+ "acting_name": "Test User",
22
+ "acting_user_id": 2,
23
+ "title": "Test Topic",
24
+ "deleted": false,
25
+ "hidden": false,
26
+ "post_type": 1,
27
+ "action_code": null,
28
+ "category_id": 1,
29
+ "closed": false,
30
+ "archived": false
31
+ },
32
+ {
33
+ "action_type": 4,
34
+ "created_at": "2016-04-28T17:31:52.527Z",
35
+ "excerpt": "test reply",
36
+ "avatar_template": "/user_avatar/localhost/pjdavis1/{size}/59_1.png",
37
+ "acting_avatar_template": "/user_avatar/localhost/pjdavis1/{size}/59_1.png",
38
+ "slug": "test-topic",
39
+ "topic_id": 11,
40
+ "target_user_id": 2,
41
+ "target_name": "Test User",
42
+ "target_username": "testuser",
43
+ "post_number": 1,
44
+ "post_id": null,
45
+ "username": "testuser",
46
+ "name": "Test User",
47
+ "user_id": 2,
48
+ "acting_username": "testuser",
49
+ "acting_name": "Test User",
50
+ "acting_user_id": 2,
51
+ "title": "Test Topic",
52
+ "deleted": false,
53
+ "hidden": null,
54
+ "post_type": null,
55
+ "action_code": null,
56
+ "category_id": 1,
57
+ "closed": false,
58
+ "archived": false
59
+ }
60
+ ]
61
+ }
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.25.0
4
+ version: 0.26.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: 2018-08-15 00:00:00.000000000 Z
14
+ date: 2018-09-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
@@ -224,6 +224,7 @@ files:
224
224
  - lib/discourse_api/api/tags.rb
225
225
  - lib/discourse_api/api/topics.rb
226
226
  - lib/discourse_api/api/uploads.rb
227
+ - lib/discourse_api/api/user_actions.rb
227
228
  - lib/discourse_api/api/users.rb
228
229
  - lib/discourse_api/client.rb
229
230
  - lib/discourse_api/error.rb
@@ -244,6 +245,7 @@ files:
244
245
  - spec/discourse_api/api/sso_spec.rb
245
246
  - spec/discourse_api/api/topics_spec.rb
246
247
  - spec/discourse_api/api/uploads_spec.rb
248
+ - spec/discourse_api/api/user_actions_spec.rb
247
249
  - spec/discourse_api/api/users_spec.rb
248
250
  - spec/discourse_api/client_spec.rb
249
251
  - spec/fixtures/admin_user.json
@@ -269,6 +271,8 @@ files:
269
271
  - spec/fixtures/post_action_users.json
270
272
  - spec/fixtures/private_messages.json
271
273
  - spec/fixtures/regenerate_api_key.json
274
+ - spec/fixtures/replies.json
275
+ - spec/fixtures/replies_and_topics.json
272
276
  - spec/fixtures/search.json
273
277
  - spec/fixtures/topic.json
274
278
  - spec/fixtures/topic_invite_user.json
@@ -326,6 +330,7 @@ test_files:
326
330
  - spec/discourse_api/api/sso_spec.rb
327
331
  - spec/discourse_api/api/topics_spec.rb
328
332
  - spec/discourse_api/api/uploads_spec.rb
333
+ - spec/discourse_api/api/user_actions_spec.rb
329
334
  - spec/discourse_api/api/users_spec.rb
330
335
  - spec/discourse_api/client_spec.rb
331
336
  - spec/fixtures/admin_user.json
@@ -351,6 +356,8 @@ test_files:
351
356
  - spec/fixtures/post_action_users.json
352
357
  - spec/fixtures/private_messages.json
353
358
  - spec/fixtures/regenerate_api_key.json
359
+ - spec/fixtures/replies.json
360
+ - spec/fixtures/replies_and_topics.json
354
361
  - spec/fixtures/search.json
355
362
  - spec/fixtures/topic.json
356
363
  - spec/fixtures/topic_invite_user.json