discourse_api 0.36.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f10d2acddddb15742c1a996952b9fabffade3d803a57bc8fd4a418891d491ad
4
- data.tar.gz: a16816326aa5d4adf54262b8a043de73703e0437d76bc19216f7c09b4b22bc87
3
+ metadata.gz: 11fa2d5cdcb3800c4bae5679d2644790c12d46c8d0797018f5a220a1f39d6ebe
4
+ data.tar.gz: fb596a1e54cac03f298492561d86afb226cb51c3a69400fb4461eeec3ab39836
5
5
  SHA512:
6
- metadata.gz: 4810cfb72e3eeca6828759ba8ddd6480767626f24ef8831bb8ff164ed68a4f295117042f4a072813ff2305cd3bc2a88427a6cdb9b5acfad64307bcd2b5ba4699
7
- data.tar.gz: a3f9a96b2b7ef9c4f37257f0e17cbac2fa9f86d67062808cdb2f55807349512b3d7ca6b968a83ac6912b833a4871d9f664f701967a06fc30422de7dd186553bb
6
+ metadata.gz: 0ed9ad86bc438113850a8313d9672b7dfb67fdcb70c1d2c0ca668544f8f9babf2e4e0aa3b4392f6887592fdaa821aaae12e3e2c53277dede8fef06e8ca626d17
7
+ data.tar.gz: 23ce5939282ca3686dd62f09eedb191d78592c64c1ce47f7e58df92368cda1471bf9da6c1697718307e96a1b12fb800ad85a63080798a91c95ee1669a9022f4a
@@ -2,6 +2,12 @@
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.37.0] - 2019-09-23
6
+ ### Added
7
+ - user-badges endpoint for full badges list
8
+ - expanded list of allowed messages
9
+ - grant/revoke moderation
10
+
5
11
  ## [0.36.0] - 2019-07-18
6
12
  ### Added
7
13
  - Added poll methods
@@ -8,7 +8,7 @@ module DiscourseApi
8
8
  end
9
9
 
10
10
  def user_badges(username)
11
- response = get("/users/#{username}/activity/badges.json")
11
+ response = get("/user-badges/#{username}.json")
12
12
  response.body['badges']
13
13
  end
14
14
 
@@ -116,8 +116,7 @@ module DiscourseApi
116
116
  end
117
117
 
118
118
  def group_set_user_notification_level(group, user_id, notification_level)
119
- response = post("/groups/#{group}/notifications?user_id=#{user_id}&notification_level=#{notification_level}")
120
- response
119
+ post("/groups/#{group}/notifications?user_id=#{user_id}&notification_level=#{notification_level}")
121
120
  end
122
121
  end
123
122
  end
@@ -31,7 +31,8 @@ module DiscourseApi
31
31
 
32
32
  def update_user(username, args)
33
33
  args = API.params(args)
34
- .optional(:name, :title, :bio_raw, :location, :website, :profile_background, :card_background)
34
+ .optional(:name, :title, :bio_raw, :location, :website, :profile_background, :card_background,
35
+ :email_messages_level, :mailing_list_mode, :homepage_id, :theme_ids, :user_fields)
35
36
  .to_h
36
37
  put("/u/#{username}", args)
37
38
  end
@@ -79,6 +80,15 @@ module DiscourseApi
79
80
  response[:body]
80
81
  end
81
82
 
83
+ def grant_moderation(user_id)
84
+ response = put("admin/users/#{user_id}/grant_moderation")
85
+ response[:body]
86
+ end
87
+
88
+ def revoke_moderation(user_id)
89
+ put("admin/users/#{user_id}/revoke_moderation")
90
+ end
91
+
82
92
  def by_external_id(external_id)
83
93
  response = get("/users/by-external/#{external_id}")
84
94
  response[:body]['user']
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module DiscourseApi
3
- VERSION = "0.36.0"
3
+ VERSION = "0.37.0"
4
4
  end
@@ -20,14 +20,14 @@ describe DiscourseApi::API::Badges do
20
20
  end
21
21
  end
22
22
 
23
- describe "#user_badges" do
23
+ describe "#user-badges" do
24
24
  before do
25
- stub_get("http://localhost:3000/users/test_user/activity/badges.json").to_return(body: fixture("user_badges.json"), headers: { content_type: "application/json" })
25
+ stub_get("http://localhost:3000/user-badges/test_user.json").to_return(body: fixture("user_badges.json"), headers: { content_type: "application/json" })
26
26
  end
27
27
 
28
28
  it "requests the correct resource" do
29
29
  subject.user_badges('test_user')
30
- expect(a_get("http://localhost:3000/users/test_user/activity/badges.json")).to have_been_made
30
+ expect(a_get("http://localhost:3000/user-badges/test_user.json")).to have_been_made
31
31
  end
32
32
 
33
33
  it "returns the requested user badges" do
@@ -106,5 +106,17 @@ describe DiscourseApi::API::Groups do
106
106
  end
107
107
  end
108
108
 
109
+ describe "group user notification level" do
110
+ before do
111
+ stub_post("http://localhost:3000/groups/mygroup/notifications?user_id=77&notification_level=3")
112
+ end
113
+
114
+ it "updates user's notification level for group" do
115
+ subject.group_set_user_notification_level("mygroup", 77, 3)
116
+ expect(a_post("http://localhost:3000/groups/mygroup/notifications?user_id=77&notification_level=3"))
117
+ .to have_been_made
118
+ end
119
+ end
120
+
109
121
  end
110
122
  end
@@ -226,6 +226,41 @@ describe DiscourseApi::API::Users do
226
226
  end
227
227
  end
228
228
 
229
+ describe "#grant moderation" do
230
+ before do
231
+ url = "http://localhost:3000/admin/users/11/grant_moderation"
232
+ stub_put(url).to_return(body: fixture("user_grant_moderator.json"),
233
+ headers: { content_type: "application/json" })
234
+ end
235
+
236
+ it "makes the correct put request" do
237
+ subject.grant_moderation(11)
238
+ url = "http://localhost:3000/admin/users/11/grant_moderation"
239
+ expect(a_put(url)).to have_been_made
240
+ end
241
+
242
+ it "makes the user a moderator" do
243
+ result = subject.grant_moderation(11)
244
+ expect(result).to be_a Hash
245
+ expect(result['admin_user']['moderator']).to eq(true)
246
+ end
247
+ end
248
+
249
+ describe "#revoke moderation" do
250
+ before do
251
+ url = "http://localhost:3000/admin/users/11/revoke_moderation"
252
+ stub_put(url).to_return(body: '', status: 200)
253
+ end
254
+
255
+ it "makes the correct put request" do
256
+ result = subject.revoke_moderation(11)
257
+ url = "http://localhost:3000/admin/users/11/revoke_moderation"
258
+ expect(a_put(url)).to have_been_made
259
+ expect(result.status).to eq(200)
260
+ end
261
+
262
+ end
263
+
229
264
  describe "#by_external_id" do
230
265
  before do
231
266
  stub_get("http://localhost:3000/users/by-external/1").to_return(body: fixture("user.json"), headers: { content_type: "application/json" })
@@ -0,0 +1,37 @@
1
+ {
2
+ "admin_user": {
3
+ "id": 11,
4
+ "username": "dave4",
5
+ "uploaded_avatar_id": null,
6
+ "avatar_template": "/letter_avatar/dave4/{size}/2.png",
7
+ "active": true,
8
+ "admin": false,
9
+ "moderator": true,
10
+ "last_seen_at": null,
11
+ "last_emailed_at": "2014-12-31T17:11:51.189Z",
12
+ "created_at": "2014-12-08T14:32:29.906Z",
13
+ "last_seen_age": null,
14
+ "last_emailed_age": "20d",
15
+ "created_at_age": "43d",
16
+ "username_lower": "dave4",
17
+ "trust_level": 0,
18
+ "trust_level_locked": false,
19
+ "flag_level": 0,
20
+ "title": null,
21
+ "suspended_at": null,
22
+ "suspended_till": null,
23
+ "suspended": null,
24
+ "blocked": false,
25
+ "time_read": "< 1m",
26
+ "days_visited": 0,
27
+ "posts_read_count": 0,
28
+ "topics_entered": 0,
29
+ "post_count": 0,
30
+ "can_send_activation_email": true,
31
+ "can_activate": false,
32
+ "can_deactivate": false,
33
+ "ip_address": "127.0.0.1",
34
+ "registration_ip_address": "127.0.0.1",
35
+ "single_sign_on_record": null
36
+ }
37
+ }
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.36.0
4
+ version: 0.37.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-07-18 00:00:00.000000000 Z
14
+ date: 2019-09-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
@@ -308,6 +308,7 @@ files:
308
308
  - spec/fixtures/user_badges.json
309
309
  - spec/fixtures/user_create_success.json
310
310
  - spec/fixtures/user_grant_admin.json
311
+ - spec/fixtures/user_grant_moderator.json
311
312
  - spec/fixtures/user_list.json
312
313
  - spec/fixtures/user_log_out_success.json
313
314
  - spec/fixtures/user_update_avatar_success.json
@@ -397,6 +398,7 @@ test_files:
397
398
  - spec/fixtures/user_badges.json
398
399
  - spec/fixtures/user_create_success.json
399
400
  - spec/fixtures/user_grant_admin.json
401
+ - spec/fixtures/user_grant_moderator.json
400
402
  - spec/fixtures/user_list.json
401
403
  - spec/fixtures/user_log_out_success.json
402
404
  - spec/fixtures/user_update_avatar_success.json