discourse_api 0.45.0 → 0.45.1

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: 82cd748487d5d986f8327b702088ea4ea22c43cae311c2634dfa5d9cf4c4059f
4
- data.tar.gz: a4fd68101134895f5071443f221a2327e9fe9e4a0a79df0d53a620c7e08d685d
3
+ metadata.gz: 10c80ce6388205a855042bd1093627508e4929c6bf79902487549568af7304b0
4
+ data.tar.gz: 4aab3d70ba9343f6717a4e4ffce233b015565904129fd4b1244e7bdac64ef565
5
5
  SHA512:
6
- metadata.gz: 42546f17e134cd1e4ac6be81c8fdb53cf82461d60a73859dd757c2ec69e1128127f33a131e45dfec3d910012702256a173a7a1afd2a9873dc3d8a3e220c4af1a
7
- data.tar.gz: 990fc89fd2a4935704e1512b858872b41ed7a6b7ba3ef28f583ad272e0675daff74f61b9a441632a8dc92c76892b8c507e53afce356317403c7c67f31a4fab18
6
+ metadata.gz: b37002fd695ca45872ba4b2ca09161173050f70692c8f051df737dd87370cb06c5103b51d5691807041ffbac9a0a9a1713fd74f406da192eeb8e29b41460c90a
7
+ data.tar.gz: 13163d2718c324780cb081aaca1e63f865e9b503bc008f4d1fbcb1145b6f3175e6621f6dbbaff14a30f8d730d9800ab6af8e3e1caee93b8baed8682d275f4b68
@@ -5,8 +5,7 @@ on:
5
5
  push:
6
6
  branches:
7
7
  - master
8
- tags:
9
- - v*
8
+ - main
10
9
 
11
10
  jobs:
12
11
  build:
@@ -18,30 +17,25 @@ jobs:
18
17
  - 2.5
19
18
  - 2.6
20
19
  - 2.7
20
+ - 3.0
21
21
 
22
22
  steps:
23
- - uses: actions/checkout@v1
23
+ - uses: actions/checkout@v2
24
24
 
25
25
  - name: Setup ruby
26
- uses: actions/setup-ruby@v1
26
+ uses: ruby/setup-ruby@v1
27
27
  with:
28
28
  ruby-version: ${{ matrix.ruby }}
29
- architecture: 'x64'
30
-
31
- - name: Setup bundler
32
- run: gem install bundler
33
-
34
- - name: Setup gems
35
- run: bundle install
29
+ bundler-cache: true
36
30
 
37
- - name: Rubocop
31
+ - name: Lint
38
32
  run: bundle exec rubocop
39
33
 
40
- - name: RSpec
41
- run: bundle exec rspec
34
+ - name: Tests
35
+ run: bundle exec rake test
42
36
 
43
37
  publish:
44
- if: contains(github.ref, 'refs/tags/v')
38
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
45
39
  needs: build
46
40
  runs-on: ubuntu-latest
47
41
 
@@ -49,6 +43,8 @@ jobs:
49
43
  - uses: actions/checkout@v2
50
44
 
51
45
  - name: Release Gem
52
- uses: CvX/publish-rubygems-action@master
46
+ uses: discourse/publish-rubygems-action@v2-beta
53
47
  env:
54
- RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
48
+ RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
49
+ GIT_EMAIL: team@discourse.org
50
+ GIT_NAME: discoursebot
data/.gitignore CHANGED
@@ -1,22 +1,3 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
1
  Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
2
  coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- bin/
19
- .ruby-gemset
20
- .ruby-version
21
- .env
22
3
  /config.yml
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'faraday', '~> 1.0'
22
- spec.add_dependency 'faraday_middleware', '~> 1.0'
23
- spec.add_dependency 'rack', '>= 1.6'
21
+ spec.add_runtime_dependency 'faraday', '~> 1.0'
22
+ spec.add_runtime_dependency 'faraday_middleware', '~> 1.0'
23
+ spec.add_runtime_dependency 'rack', '>= 1.6'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '~> 2.0'
26
26
  spec.add_development_dependency 'guard', '~> 2.14'
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'rspec', '~> 3.4'
31
31
  spec.add_development_dependency 'simplecov', '~> 0.11'
32
32
  spec.add_development_dependency 'webmock', '~> 3.0'
33
- spec.add_development_dependency 'rubocop-discourse'
33
+ spec.add_development_dependency 'rubocop-discourse', '~> 2.4.1'
34
34
 
35
35
  spec.required_ruby_version = '>= 2.5.0'
36
36
  end
data/examples/category.rb CHANGED
@@ -14,6 +14,9 @@ puts client.categories()
14
14
  # get sub categories for parent category with id 2
15
15
  puts client.categories(parent_category_id: 2)
16
16
 
17
+ # get the full categories response
18
+ puts client.categories_full()
19
+
17
20
  # List topics in a category
18
21
  category_topics = client.category_latest_topics(category_slug: "test-category")
19
22
  puts category_topics
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+ require File.expand_path('../../lib/discourse_api', __FILE__)
4
+
5
+ config = DiscourseApi::ExampleHelper.load_yml
6
+
7
+ client = DiscourseApi::Client.new(config['host'] || 'http://localhost:3000')
8
+ client.api_key = config['api_key'] || "YOUR_API_KEY"
9
+ client.api_username = config['api_username'] || "YOUR_USERNAME"
10
+
11
+ # watch an entire category
12
+ client.category_set_user_notification_level(1, notification_level: 3)
13
+
14
+ # mute a topic
15
+ client.topic_set_user_notification_level(1, notification_level: 0)
@@ -11,6 +11,9 @@ client.api_username = config['api_username'] || "YOUR_USERNAME"
11
11
  # get latest topics
12
12
  puts client.latest_topics({})
13
13
 
14
+ # get top topics
15
+ puts client.top_topics
16
+
14
17
  # recategorize topic
15
18
  puts client.recategorize_topic(topic_id: 108, category_id: 5)
16
19
 
@@ -36,11 +36,24 @@ module DiscourseApi
36
36
  end
37
37
 
38
38
  def categories(params = {})
39
+ categories_full(params)['category_list']['categories']
40
+ end
41
+
42
+ def categories_full(params = {})
39
43
  response = get('/categories.json', params)
40
- response[:body]['category_list']['categories']
44
+ response[:body]
41
45
  end
42
46
 
43
47
  def category_latest_topics(args = {})
48
+ response = category_latest_topics_full(args)
49
+ if response['errors']
50
+ response['errors']
51
+ else
52
+ response['topic_list']['topics']
53
+ end
54
+ end
55
+
56
+ def category_latest_topics_full(args = {})
44
57
  params = API.params(args)
45
58
  .required(:category_slug)
46
59
  .optional(:page).to_h
@@ -49,25 +62,31 @@ module DiscourseApi
49
62
  url = "#{url}?page=#{params[:page]}"
50
63
  end
51
64
  response = get(url)
52
- if response[:body]['errors']
53
- response[:body]['errors']
54
- else
55
- response[:body]['topic_list']['topics']
56
- end
65
+ response[:body]
57
66
  end
58
67
 
59
68
  def category_top_topics(category_slug)
60
- response = get("/c/#{category_slug}/l/top.json")
61
- if response[:body]['errors']
62
- response[:body]['errors']
69
+ response = category_top_topics_full(category_slug)
70
+ if response['errors']
71
+ response['errors']
63
72
  else
64
- response[:body]['topic_list']['topics']
73
+ response['topic_list']['topics']
65
74
  end
66
75
  end
67
76
 
77
+ def category_top_topics_full(category_slug)
78
+ response = get("/c/#{category_slug}/l/top.json")
79
+ response[:body]
80
+ end
81
+
68
82
  def category_new_topics(category_slug)
83
+ response = category_new_topics_full(category_slug)
84
+ response['topic_list']['topics']
85
+ end
86
+
87
+ def category_new_topics_full(category_slug)
69
88
  response = get("/c/#{category_slug}/l/new.json")
70
- response[:body]['topic_list']['topics']
89
+ response[:body]
71
90
  end
72
91
 
73
92
  def category(id)
@@ -75,12 +94,19 @@ module DiscourseApi
75
94
  response[:body]['category']
76
95
  end
77
96
 
97
+ # TODO: Deprecated. Remove after 20210727
78
98
  def category_set_user_notification(args = {})
79
99
  category_id = args[:id]
80
100
  args = API.params(args)
81
101
  .required(:notification_level)
82
102
  post("/category/#{category_id}/notifications", args)
83
103
  end
104
+
105
+ def category_set_user_notification_level(category_id, params)
106
+ params = API.params(params)
107
+ .required(:notification_level)
108
+ post("/category/#{category_id}/notifications", params)
109
+ end
84
110
  end
85
111
  end
86
112
  end
@@ -12,7 +12,7 @@ module DiscourseApi
12
12
  raise ArgumentError.new("#{term} is required but not specified") unless term
13
13
  raise ArgumentError.new("#{term} is required but not specified") unless !term.empty?
14
14
 
15
- response = get('/search/query', options.merge(term: term))
15
+ response = get('/search', options.merge(q: term))
16
16
  response[:body]
17
17
  end
18
18
  end
@@ -29,6 +29,11 @@ module DiscourseApi
29
29
  response[:body]['topic_list']['topics']
30
30
  end
31
31
 
32
+ def top_topics(params = {})
33
+ response = get("/top.json", params)
34
+ response[:body]['topic_list']['topics']
35
+ end
36
+
32
37
  def new_topics(params = {})
33
38
  response = get("/new.json", params)
34
39
  response[:body]['topic_list']['topics']
@@ -85,6 +90,12 @@ module DiscourseApi
85
90
 
86
91
  post("/t/#{topic_id}/change-owner.json", params)
87
92
  end
93
+
94
+ def topic_set_user_notification_level(topic_id, params)
95
+ params = API.params(params)
96
+ .required(:notification_level)
97
+ post("/t/#{topic_id}/notifications", params)
98
+ end
88
99
  end
89
100
  end
90
101
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module DiscourseApi
3
- VERSION = "0.45.0"
3
+ VERSION = "0.45.1"
4
4
  end
@@ -28,6 +28,25 @@ describe DiscourseApi::API::Categories do
28
28
  end
29
29
  end
30
30
 
31
+ describe "#categories_full" do
32
+ before do
33
+ stub_get("#{host}/categories.json")
34
+ .to_return(body: fixture("categories.json"), headers: { content_type: "application/json" })
35
+ end
36
+
37
+ it "requests the correct resource" do
38
+ subject.categories
39
+ expect(a_get("#{host}/categories.json")).to have_been_made
40
+ end
41
+
42
+ it "returns the entire categories response" do
43
+ categories = subject.categories_full
44
+ expect(categories).to be_a Hash
45
+ expect(categories).to have_key 'category_list'
46
+ expect(categories).to have_key 'featured_users'
47
+ end
48
+ end
49
+
31
50
  describe '#category_latest_topics' do
32
51
  before do
33
52
  stub_get("#{host}/c/category-slug/l/latest.json")
@@ -40,6 +59,20 @@ describe DiscourseApi::API::Categories do
40
59
  end
41
60
  end
42
61
 
62
+ describe '#category_latest_topics_full' do
63
+ before do
64
+ stub_get("#{host}/c/category-slug/l/latest.json")
65
+ .to_return(body: fixture("category_latest_topics.json"), headers: { content_type: "application/json" })
66
+ end
67
+
68
+ it "returns the entire latest topics in a category response" do
69
+ latest_topics = subject.category_latest_topics_full(category_slug: 'category-slug')
70
+ expect(latest_topics).to be_a Hash
71
+ expect(latest_topics).to have_key 'topic_list'
72
+ expect(latest_topics).to have_key 'users'
73
+ end
74
+ end
75
+
43
76
  describe '#category_top_topics' do
44
77
  before do
45
78
  stub_get("#{host}/c/category-slug/l/top.json")
@@ -55,6 +88,23 @@ describe DiscourseApi::API::Categories do
55
88
  end
56
89
  end
57
90
 
91
+ describe '#category_top_topics_full' do
92
+ before do
93
+ stub_get("#{host}/c/category-slug/l/top.json")
94
+ .to_return(
95
+ body: fixture("category_topics.json"),
96
+ headers: { content_type: "application/json" }
97
+ )
98
+ end
99
+
100
+ it "returns the entire top topics in a category response" do
101
+ topics = subject.category_top_topics_full('category-slug')
102
+ expect(topics).to be_a Hash
103
+ expect(topics).to have_key 'topic_list'
104
+ expect(topics).to have_key 'users'
105
+ end
106
+ end
107
+
58
108
  describe '#category_new_topics' do
59
109
  before do
60
110
  stub_get("#{host}/c/category-slug/l/new.json")
@@ -70,6 +120,23 @@ describe DiscourseApi::API::Categories do
70
120
  end
71
121
  end
72
122
 
123
+ describe '#category_new_topics_full' do
124
+ before do
125
+ stub_get("#{host}/c/category-slug/l/new.json")
126
+ .to_return(
127
+ body: fixture("category_topics.json"),
128
+ headers: { content_type: "application/json" }
129
+ )
130
+ end
131
+
132
+ it "returns the new topics in a category" do
133
+ topics = subject.category_new_topics_full('category-slug')
134
+ expect(topics).to be_a Hash
135
+ expect(topics).to have_key 'topic_list'
136
+ expect(topics).to have_key 'users'
137
+ end
138
+ end
139
+
73
140
  describe '#category_new_category' do
74
141
  before do
75
142
  stub_post("#{host}/categories")
@@ -85,4 +152,27 @@ describe DiscourseApi::API::Categories do
85
152
  end
86
153
  end
87
154
 
155
+ describe "#category_set_user_notification" do
156
+ before do
157
+ stub_post("#{host}/category/1/notifications").to_return(body: fixture("notification_success.json"), headers: { content_type: "application/json" })
158
+ end
159
+
160
+ it "makes the post request" do
161
+ response = subject.category_set_user_notification(id: 1, notification_level: 3)
162
+ expect(a_post("#{host}/category/1/notifications")).to have_been_made
163
+ expect(response['success']).to eq('OK')
164
+ end
165
+ end
166
+
167
+ describe "#category_set_user_notification_level" do
168
+ before do
169
+ stub_post("#{host}/category/1/notifications").to_return(body: fixture("notification_success.json"), headers: { content_type: "application/json" })
170
+ end
171
+
172
+ it "makes the post request" do
173
+ response = subject.category_set_user_notification_level(1, notification_level: 3)
174
+ expect(a_post("#{host}/category/1/notifications").with(body: "notification_level=3")).to have_been_made
175
+ expect(response['success']).to eq('OK')
176
+ end
177
+ end
88
178
  end
@@ -6,12 +6,12 @@ describe DiscourseApi::API::Search do
6
6
 
7
7
  describe "#search" do
8
8
  before do
9
- stub_get("#{host}/search/query").with(query: { term: "test" }).to_return(body: fixture("search.json"), headers: { content_type: "application/json" })
9
+ stub_get("#{host}/search").with(query: { q: "test" }).to_return(body: fixture("search.json"), headers: { content_type: "application/json" })
10
10
  end
11
11
 
12
12
  it "requests the correct resource" do
13
13
  subject.search("test")
14
- expect(a_get("#{host}/search/query").with(query: { term: "test" })).to have_been_made
14
+ expect(a_get("#{host}/search").with(query: { q: "test" })).to have_been_made
15
15
  end
16
16
 
17
17
  it "returns the requested search" do
@@ -55,6 +55,29 @@ describe DiscourseApi::API::Topics do
55
55
  end
56
56
  end
57
57
 
58
+ describe "#top_topics" do
59
+ before do
60
+ stub_get("#{host}/top.json").to_return(body: fixture("top.json"), headers: { content_type: "application/json" })
61
+ end
62
+
63
+ it "requests the correct resource" do
64
+ subject.top_topics
65
+ expect(a_get("#{host}/top.json")).to have_been_made
66
+ end
67
+
68
+ it "returns the requested topics" do
69
+ topics = subject.top_topics
70
+ expect(topics).to be_an Array
71
+ expect(topics.first).to be_a Hash
72
+ end
73
+
74
+ it "can take a hash param" do
75
+ topics = subject.top_topics({})
76
+ expect(topics).to be_an Array
77
+ expect(topics.first).to be_a Hash
78
+ end
79
+ end
80
+
58
81
  describe "#new_topics" do
59
82
  before do
60
83
  stub_get("#{host}/new.json").to_return(body: fixture("new.json"), headers: { content_type: "application/json" })
@@ -166,4 +189,15 @@ describe DiscourseApi::API::Topics do
166
189
  end
167
190
  end
168
191
 
192
+ describe "#topic_set_user_notification_level" do
193
+ before do
194
+ stub_post("#{host}/t/1/notifications").to_return(body: fixture("notification_success.json"), headers: { content_type: "application/json" })
195
+ end
196
+
197
+ it "makes the post request" do
198
+ response = subject.topic_set_user_notification_level(1, notification_level: 3)
199
+ expect(a_post("#{host}/t/1/notifications").with(body: "notification_level=3")).to have_been_made
200
+ expect(response['success']).to eq('OK')
201
+ end
202
+ end
169
203
  end
@@ -0,0 +1,3 @@
1
+ {
2
+ "success": "OK"
3
+ }
@@ -0,0 +1,108 @@
1
+ {
2
+ "topic_list": {
3
+ "can_create_topic": false,
4
+ "more_topics_url": "/latest.json?page=1",
5
+ "draft": null,
6
+ "draft_key": "new_topic",
7
+ "draft_sequence": null,
8
+ "topics": [
9
+ {
10
+ "id": 1,
11
+ "title": "Test topic #1",
12
+ "fancy_title": "Test topic #1",
13
+ "slug": "test-topic-1",
14
+ "posts_count": 1,
15
+ "reply_count": 0,
16
+ "highest_post_number": 1,
17
+ "image_url": null,
18
+ "created_at": "2013-02-04T15:26:25.977-05:00",
19
+ "last_posted_at": "2013-02-05T12:14:17.364-05:00",
20
+ "bumped": true,
21
+ "bumped_at": "2013-02-07T13:43:11.191-05:00",
22
+ "unseen": false,
23
+ "pinned": true,
24
+ "excerpt": "Welcome! \n\nTry is a sandbox, a safe place to play with Discourse and its features.\n\nThis site is reset every day (or even more often). Any accounts or posts you create here will not exist tomorrow! \n\nFeel free to experim…",
25
+ "visible": true,
26
+ "closed": false,
27
+ "archived": false,
28
+ "views": 268,
29
+ "like_count": 14,
30
+ "has_best_of": false,
31
+ "archetype": "regular",
32
+ "last_poster_username": "test_user",
33
+ "category_id": 1,
34
+ "posters": [
35
+ {
36
+ "extras": null,
37
+ "description": "Original Poster, Most Recent Poster",
38
+ "user_id": 1
39
+ }
40
+ ]
41
+ },
42
+ {
43
+ "id": 1,
44
+ "title": "Test topic #2",
45
+ "fancy_title": "Test topic #2",
46
+ "slug": "test-topic-1",
47
+ "posts_count": 1,
48
+ "reply_count": 0,
49
+ "highest_post_number": 2,
50
+ "image_url": null,
51
+ "created_at": "2013-11-06T13:57:47.984-05:00",
52
+ "last_posted_at": "2013-11-06T13:57:48.111-05:00",
53
+ "bumped": true,
54
+ "bumped_at": "2013-11-06T13:57:48.111-05:00",
55
+ "unseen": false,
56
+ "pinned": false,
57
+ "visible": true,
58
+ "closed": false,
59
+ "archived": false,
60
+ "views": 1,
61
+ "like_count": 0,
62
+ "has_best_of": false,
63
+ "archetype": "regular",
64
+ "last_poster_username": "test_user",
65
+ "category_id": 1,
66
+ "posters": [
67
+ {
68
+ "extras": null,
69
+ "description": "Original Poster, Most Recent Poster",
70
+ "user_id": 1
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "id": 1,
76
+ "title": "Test topic #3",
77
+ "fancy_title": "Test topic #3",
78
+ "slug": "test-topic-3",
79
+ "posts_count": 1,
80
+ "reply_count": 0,
81
+ "highest_post_number": 1,
82
+ "image_url": null,
83
+ "created_at": "2013-02-04T21:46:58.194-05:00",
84
+ "last_posted_at": "2013-11-06T13:56:27.753-05:00",
85
+ "bumped": true,
86
+ "bumped_at": "2013-11-06T13:56:27.753-05:00",
87
+ "unseen": false,
88
+ "pinned": false,
89
+ "visible": true,
90
+ "closed": false,
91
+ "archived": false,
92
+ "views": 82,
93
+ "like_count": 10,
94
+ "has_best_of": false,
95
+ "archetype": "regular",
96
+ "last_poster_username": "test_user",
97
+ "category_id": 1,
98
+ "posters": [
99
+ {
100
+ "extras": null,
101
+ "description": "Original Poster, Most Recent Poster",
102
+ "user_id": 1
103
+ }
104
+ ]
105
+ }
106
+ ]
107
+ }
108
+ }
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.45.0
4
+ version: 0.45.1
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: 2021-01-15 00:00:00.000000000 Z
14
+ date: 2021-03-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: faraday
@@ -171,16 +171,16 @@ dependencies:
171
171
  name: rubocop-discourse
172
172
  requirement: !ruby/object:Gem::Requirement
173
173
  requirements:
174
- - - ">="
174
+ - - "~>"
175
175
  - !ruby/object:Gem::Version
176
- version: '0'
176
+ version: 2.4.1
177
177
  type: :development
178
178
  prerelease: false
179
179
  version_requirements: !ruby/object:Gem::Requirement
180
180
  requirements:
181
- - - ">="
181
+ - - "~>"
182
182
  - !ruby/object:Gem::Version
183
- version: '0'
183
+ version: 2.4.1
184
184
  description: Discourse API
185
185
  email:
186
186
  - sam.saffron@gmail.com
@@ -217,6 +217,7 @@ files:
217
217
  - examples/groups.rb
218
218
  - examples/invite_users.rb
219
219
  - examples/manage_api_keys.rb
220
+ - examples/notifications.rb
220
221
  - examples/polls.rb
221
222
  - examples/post_action.rb
222
223
  - examples/search.rb
@@ -290,6 +291,7 @@ files:
290
291
  - spec/fixtures/members_1.json
291
292
  - spec/fixtures/members_2.json
292
293
  - spec/fixtures/new.json
294
+ - spec/fixtures/notification_success.json
293
295
  - spec/fixtures/notifications.json
294
296
  - spec/fixtures/polls_toggle_status.json
295
297
  - spec/fixtures/polls_vote.json
@@ -303,6 +305,7 @@ files:
303
305
  - spec/fixtures/replies.json
304
306
  - spec/fixtures/replies_and_topics.json
305
307
  - spec/fixtures/search.json
308
+ - spec/fixtures/top.json
306
309
  - spec/fixtures/topic.json
307
310
  - spec/fixtures/topic_invite_user.json
308
311
  - spec/fixtures/topic_posts.json
@@ -341,7 +344,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
341
344
  - !ruby/object:Gem::Version
342
345
  version: '0'
343
346
  requirements: []
344
- rubygems_version: 3.0.3
347
+ rubygems_version: 3.1.4
345
348
  signing_key:
346
349
  specification_version: 4
347
350
  summary: Allows access to the Discourse API
@@ -384,6 +387,7 @@ test_files:
384
387
  - spec/fixtures/members_1.json
385
388
  - spec/fixtures/members_2.json
386
389
  - spec/fixtures/new.json
390
+ - spec/fixtures/notification_success.json
387
391
  - spec/fixtures/notifications.json
388
392
  - spec/fixtures/polls_toggle_status.json
389
393
  - spec/fixtures/polls_vote.json
@@ -397,6 +401,7 @@ test_files:
397
401
  - spec/fixtures/replies.json
398
402
  - spec/fixtures/replies_and_topics.json
399
403
  - spec/fixtures/search.json
404
+ - spec/fixtures/top.json
400
405
  - spec/fixtures/topic.json
401
406
  - spec/fixtures/topic_invite_user.json
402
407
  - spec/fixtures/topic_posts.json