qiita-sdk 0.1.0 → 0.5.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 +4 -4
- data/.rubocop.yml +14 -0
- data/Gemfile +6 -3
- data/Gemfile.lock +44 -1
- data/README.md +440 -11
- data/Rakefile +3 -3
- data/bin/console +3 -3
- data/lib/qiita/sdk.rb +4 -4
- data/lib/qiita/sdk/api_actions.rb +320 -0
- data/lib/qiita/sdk/client.rb +36 -337
- data/lib/qiita/sdk/httpclient.rb +3 -2
- data/lib/qiita/sdk/version.rb +1 -1
- data/qiita-sdk.gemspec +14 -15
- metadata +11 -9
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'qiita/sdk'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +10,5 @@ require "qiita/sdk"
|
|
10
10
|
# require "pry"
|
11
11
|
# Pry.start
|
12
12
|
|
13
|
-
require
|
13
|
+
require 'irb'
|
14
14
|
IRB.start(__FILE__)
|
data/lib/qiita/sdk.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
require
|
1
|
+
require 'qiita/sdk/version'
|
2
|
+
require 'qiita/sdk/api_actions'
|
2
3
|
require 'qiita/sdk/client'
|
3
4
|
require 'qiita/sdk/httpclient'
|
5
|
+
require 'pry'
|
6
|
+
|
4
7
|
|
5
8
|
module Qiita
|
6
9
|
module Sdk
|
7
10
|
class Error < StandardError; end
|
8
|
-
def self.greet
|
9
|
-
p "hello"
|
10
|
-
end
|
11
11
|
end
|
12
12
|
end
|
@@ -0,0 +1,320 @@
|
|
1
|
+
module Qiita
|
2
|
+
module Sdk
|
3
|
+
module ApiActions
|
4
|
+
# 記事につけられた「LGTM!」一覧
|
5
|
+
def fetch_item_likes(item_id:)
|
6
|
+
path = "/api/v2/items/#{item_id}/likes"
|
7
|
+
|
8
|
+
get(path)
|
9
|
+
end
|
10
|
+
|
11
|
+
# コメントを削除
|
12
|
+
def delete_comment(comment_id:)
|
13
|
+
path = "/api/v2/comments/#{comment_id}"
|
14
|
+
|
15
|
+
delete(path)
|
16
|
+
end
|
17
|
+
|
18
|
+
# コメントを取得
|
19
|
+
def fetch_comment(comment_id:)
|
20
|
+
path = "/api/v2/comments/#{comment_id}"
|
21
|
+
|
22
|
+
get(path)
|
23
|
+
end
|
24
|
+
|
25
|
+
# コメントを更新
|
26
|
+
def update_comment(comment_id:, body:)
|
27
|
+
path = "/api/v2/comments/#{comment_id}"
|
28
|
+
|
29
|
+
params = {
|
30
|
+
body: body
|
31
|
+
}
|
32
|
+
|
33
|
+
patch(path, params)
|
34
|
+
end
|
35
|
+
|
36
|
+
# 投稿に付けられたコメント一覧
|
37
|
+
def fetch_item_comments(item_id:)
|
38
|
+
path = "/api/v2/items/#{item_id}/comments"
|
39
|
+
|
40
|
+
get(path)
|
41
|
+
end
|
42
|
+
|
43
|
+
# 記事に対してコメントを投稿
|
44
|
+
def post_comment(item_id:, body:)
|
45
|
+
path = "/api/v2/items/#{item_id}/comments"
|
46
|
+
|
47
|
+
params = {
|
48
|
+
body: body
|
49
|
+
}
|
50
|
+
|
51
|
+
post(path, params)
|
52
|
+
end
|
53
|
+
|
54
|
+
# タグを取得
|
55
|
+
def fetch_tag(tag_id:)
|
56
|
+
path = "/api/v2/tags/#{tag_id}"
|
57
|
+
|
58
|
+
get(path)
|
59
|
+
end
|
60
|
+
|
61
|
+
# ユーザがフォローしているタグ一覧
|
62
|
+
def fetch_following_tags(user_id:)
|
63
|
+
path = "/api/v2/users/#{user_id}/following_tags"
|
64
|
+
|
65
|
+
get(path)
|
66
|
+
end
|
67
|
+
|
68
|
+
# タグのフォローを外す
|
69
|
+
def delete_tag_following(tag_id:)
|
70
|
+
path = "/api/v2/tags/#{tag_id}/following"
|
71
|
+
|
72
|
+
delete(path)
|
73
|
+
end
|
74
|
+
|
75
|
+
# タグをフォローしているかどうかを調る
|
76
|
+
def check_tag_following(tag_id:)
|
77
|
+
path = "/api/v2/tags/#{tag_id}/following"
|
78
|
+
|
79
|
+
get(path)
|
80
|
+
end
|
81
|
+
|
82
|
+
# タグをフォロー
|
83
|
+
def follow_tag(tag_id:)
|
84
|
+
path = "/api/v2/tags/#{tag_id}/following"
|
85
|
+
|
86
|
+
put(path, {})
|
87
|
+
end
|
88
|
+
|
89
|
+
# 記事をストックしているユーザ一覧を、ストックした日時の降順で返す
|
90
|
+
def fetch_item_stockers(item_id:)
|
91
|
+
path = "/api/v2/items/#{item_id}/stockers"
|
92
|
+
|
93
|
+
get(path)
|
94
|
+
end
|
95
|
+
|
96
|
+
# 全てのユーザの一覧を作成日時の降順で取得
|
97
|
+
def fetch_users
|
98
|
+
path = '/api/v2/users'
|
99
|
+
|
100
|
+
get(path)
|
101
|
+
end
|
102
|
+
|
103
|
+
# ユーザを取得
|
104
|
+
def fetch_user(user_id:)
|
105
|
+
path = "/api/v2/users/#{user_id}"
|
106
|
+
|
107
|
+
get(path)
|
108
|
+
end
|
109
|
+
|
110
|
+
# ユーザがフォローしているユーザ一覧を取得
|
111
|
+
def fetch_followees(user_id:)
|
112
|
+
path = "/api/v2/users/#{user_id}/followees"
|
113
|
+
|
114
|
+
get(path)
|
115
|
+
end
|
116
|
+
|
117
|
+
# ユーザをフォローしているユーザ一覧を取得
|
118
|
+
def fetch_followers(user_id:)
|
119
|
+
path = "/api/v2/users/#{user_id}/followers"
|
120
|
+
|
121
|
+
get(path)
|
122
|
+
end
|
123
|
+
|
124
|
+
# ユーザへのフォローを外します。
|
125
|
+
def delete_following(user_id:)
|
126
|
+
path = "/api/v2/users/#{user_id}/following"
|
127
|
+
|
128
|
+
delete(path)
|
129
|
+
end
|
130
|
+
|
131
|
+
# ユーザをフォローしている場合に204を返す
|
132
|
+
def check_following(user_id:)
|
133
|
+
path = "/api/v2/users/#{user_id}/following"
|
134
|
+
|
135
|
+
get(path)
|
136
|
+
end
|
137
|
+
|
138
|
+
# ユーザをフォロー
|
139
|
+
def follow_user(user_id:)
|
140
|
+
path = "/api/v2/users/#{user_id}/following"
|
141
|
+
|
142
|
+
put(path, {})
|
143
|
+
end
|
144
|
+
|
145
|
+
# 認証中のユーザの記事の一覧を作成日時の降順で返す
|
146
|
+
def fetch_my_items(per_page: 100, page: 1)
|
147
|
+
path = '/api/v2/authenticated_user/items'
|
148
|
+
|
149
|
+
params = {
|
150
|
+
per_page: per_page,
|
151
|
+
page: page
|
152
|
+
}
|
153
|
+
|
154
|
+
get(path, params)
|
155
|
+
end
|
156
|
+
|
157
|
+
# 記事の一覧を作成日時の降順で返す
|
158
|
+
def fetch_items(per_page: 100, page: 1)
|
159
|
+
path = '/api/v2/items'
|
160
|
+
|
161
|
+
params = {
|
162
|
+
per_page: per_page,
|
163
|
+
page: page
|
164
|
+
}
|
165
|
+
|
166
|
+
get(path, params)
|
167
|
+
end
|
168
|
+
|
169
|
+
# 新たに記事を作成
|
170
|
+
def post_item(title:, body:, tweet: false, tags: [], restricted: false)
|
171
|
+
path = '/api/v2/items'
|
172
|
+
|
173
|
+
params = {
|
174
|
+
title: title,
|
175
|
+
body: body,
|
176
|
+
tweet: tweet,
|
177
|
+
tags: tags,
|
178
|
+
private: restricted
|
179
|
+
}
|
180
|
+
|
181
|
+
post(path, params)
|
182
|
+
end
|
183
|
+
|
184
|
+
# 記事を削除
|
185
|
+
def delete_item(item_id:)
|
186
|
+
path = "/api/v2/items/#{item_id}"
|
187
|
+
|
188
|
+
delete(path)
|
189
|
+
end
|
190
|
+
|
191
|
+
# 記事を取得
|
192
|
+
def fetch_item(item_id:)
|
193
|
+
path = "/api/v2/items/#{item_id}"
|
194
|
+
|
195
|
+
get(path)
|
196
|
+
end
|
197
|
+
|
198
|
+
# 記事を更新
|
199
|
+
def update_item(item_id:, title: nil, body: nil, restricted: nil, tags: nil)
|
200
|
+
path = "/api/v2/items/#{item_id}"
|
201
|
+
params = {
|
202
|
+
item_id: item_id,
|
203
|
+
title: title,
|
204
|
+
body: body,
|
205
|
+
private: restricted,
|
206
|
+
tags: tags
|
207
|
+
}
|
208
|
+
|
209
|
+
patch(path, params)
|
210
|
+
end
|
211
|
+
|
212
|
+
# 記事をストック
|
213
|
+
def stock_item(item_id:)
|
214
|
+
path = "/api/v2/items/#{item_id}/stock"
|
215
|
+
|
216
|
+
put(path, {})
|
217
|
+
end
|
218
|
+
|
219
|
+
# 記事をストックから取り除く
|
220
|
+
def delete_stock(item_id:)
|
221
|
+
path = "/api/v2/items/#{item_id}/stock"
|
222
|
+
|
223
|
+
delete(path)
|
224
|
+
end
|
225
|
+
|
226
|
+
# 記事をストックしているかどうか調べる
|
227
|
+
def check_item_stock(item_id:)
|
228
|
+
path = "/api/v2/items/#{item_id}/stock"
|
229
|
+
|
230
|
+
get(path)
|
231
|
+
end
|
232
|
+
|
233
|
+
# タグの記事一覧
|
234
|
+
def fetch_tag_items(tag_id:)
|
235
|
+
path = "/api/v2/tags/#{tag_id}/items"
|
236
|
+
|
237
|
+
get(path)
|
238
|
+
end
|
239
|
+
|
240
|
+
# 指定されたユーザの記事一覧
|
241
|
+
def fetch_user_items(user_id:, per_page: 100, page: 1)
|
242
|
+
path = "/api/v2/users/#{user_id}/items"
|
243
|
+
|
244
|
+
params = {
|
245
|
+
per_page: per_page,
|
246
|
+
page: page
|
247
|
+
}
|
248
|
+
|
249
|
+
get(path, params)
|
250
|
+
end
|
251
|
+
|
252
|
+
# 指定されたユーザがストックした記事一覧
|
253
|
+
def fetch_user_stocks(user_id:, per_page: 100, per: 1)
|
254
|
+
path = "/api/v2/users/#{user_id}/stocks"
|
255
|
+
|
256
|
+
params = {
|
257
|
+
per_page: per_page,
|
258
|
+
page: page
|
259
|
+
}
|
260
|
+
|
261
|
+
get(path, params)
|
262
|
+
end
|
263
|
+
|
264
|
+
# コメントに絵文字リアクションを付ける
|
265
|
+
def attach_reaction_to_comment(comment_id:, name:)
|
266
|
+
path = "/api/v2/comments/#{comment_id}/reactions"
|
267
|
+
params = {
|
268
|
+
name: name
|
269
|
+
}
|
270
|
+
|
271
|
+
post(path, params)
|
272
|
+
end
|
273
|
+
|
274
|
+
# 記事に絵文字リアクションを付ける
|
275
|
+
def attach_reaction_to_item(item_id:, name:)
|
276
|
+
path = "/api/v2/items/#{item_id}/reactions"
|
277
|
+
params = {
|
278
|
+
name: name
|
279
|
+
}
|
280
|
+
|
281
|
+
post(path, params)
|
282
|
+
end
|
283
|
+
|
284
|
+
# コメントから絵文字リアクションを削除
|
285
|
+
def delete_comment_reaction(comment_id:, reaction_name:)
|
286
|
+
path = "/api/v2/comments/#{comment_id}/reactions/#{reaction_name}"
|
287
|
+
|
288
|
+
delete(path)
|
289
|
+
end
|
290
|
+
|
291
|
+
# 記事から絵文字リアクションを削除
|
292
|
+
def delete_item_reaction(item_id:, reaction_name:)
|
293
|
+
path = "/api/v2/items/#{item_id}/reactions/#{reaction_name}"
|
294
|
+
|
295
|
+
delete(path)
|
296
|
+
end
|
297
|
+
|
298
|
+
# コメントに付けられた絵文字リアクション一覧
|
299
|
+
def fetch_comment_reactions(comment_id:)
|
300
|
+
path = "/api/v2/comments/#{comment_id}/reactions"
|
301
|
+
|
302
|
+
get(path)
|
303
|
+
end
|
304
|
+
|
305
|
+
# 記事に付けられた絵文字リアクション一覧
|
306
|
+
def fetch_item_reactions(item_id:)
|
307
|
+
path = "/api/v2/items/#{item_id}/reactions"
|
308
|
+
|
309
|
+
get(path)
|
310
|
+
end
|
311
|
+
|
312
|
+
# アクセストークンに紐付いたユーザを返す
|
313
|
+
def fetch_authenticated_user
|
314
|
+
path = '/api/v2/authenticated_user'
|
315
|
+
|
316
|
+
get(path)
|
317
|
+
end
|
318
|
+
end
|
319
|
+
end
|
320
|
+
end
|
data/lib/qiita/sdk/client.rb
CHANGED
@@ -5,366 +5,65 @@ module Qiita
|
|
5
5
|
require 'uri'
|
6
6
|
require 'json'
|
7
7
|
|
8
|
-
|
8
|
+
include Qiita::Sdk::ApiActions
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
"Content-Type" => "application/json"
|
13
|
-
}
|
10
|
+
# @return [String]
|
11
|
+
attr_accessor :access_token
|
14
12
|
|
15
|
-
|
16
|
-
|
13
|
+
API_BASE_URL = 'https://qiita.com'.freeze
|
14
|
+
|
15
|
+
def initialize(options = {})
|
16
|
+
options.each do |key, value|
|
17
|
+
instance_variable_set("@#{key}", value)
|
18
|
+
end
|
19
|
+
yield(self) if block_given?
|
20
|
+
end
|
21
|
+
|
22
|
+
def credential
|
23
|
+
"Bearer #{@access_token}" if @access_token
|
17
24
|
end
|
18
25
|
|
19
|
-
def
|
20
|
-
headers =
|
21
|
-
|
26
|
+
def headers
|
27
|
+
headers = {
|
28
|
+
'Accept' => 'application/json',
|
29
|
+
'Content-Type' => 'application/json'
|
30
|
+
}
|
31
|
+
headers['Authorization'] = credential if credential
|
22
32
|
headers
|
23
33
|
end
|
24
34
|
|
25
|
-
def get(
|
35
|
+
def get(path, params)
|
36
|
+
url = endpoint + path
|
26
37
|
httpclient = HTTPClient.new
|
27
|
-
httpclient.get(url,
|
38
|
+
httpclient.get(url, params, headers)
|
28
39
|
end
|
29
40
|
|
30
|
-
def patch(
|
41
|
+
def patch(path, params)
|
42
|
+
url = endpoint + path
|
31
43
|
httpclient = HTTPClient.new
|
32
|
-
httpclient.patch(url, params.to_json,
|
44
|
+
httpclient.patch(url, params.to_json, headers)
|
33
45
|
end
|
34
46
|
|
35
|
-
def put(
|
47
|
+
def put(path, params)
|
48
|
+
url = endpoint + path
|
36
49
|
httpclient = HTTPClient.new
|
37
|
-
httpclient.put(url)
|
50
|
+
httpclient.put(url, params)
|
38
51
|
end
|
39
52
|
|
40
|
-
def post(
|
53
|
+
def post(path, params)
|
54
|
+
url = endpoint + path
|
41
55
|
httpclient = HTTPClient.new
|
42
|
-
httpclient.post(url, params.to_json,
|
56
|
+
httpclient.post(url, params.to_json, headers)
|
43
57
|
end
|
44
58
|
|
45
|
-
def delete(
|
59
|
+
def delete(path)
|
60
|
+
url = endpoint + path
|
46
61
|
httpclient = HTTPClient.new
|
47
62
|
httpclient.delete(url)
|
48
63
|
end
|
49
64
|
|
50
|
-
|
51
|
-
|
52
|
-
path = '/api/v2/users'
|
53
|
-
url = API_BASE_URL + path
|
54
|
-
|
55
|
-
get(url)
|
56
|
-
end
|
57
|
-
|
58
|
-
# 記事につけられた「LGTM!」一覧
|
59
|
-
def fetch_item_likes(item_id:)
|
60
|
-
path = "/api/v2/items/#{item_id}/likes"
|
61
|
-
url = API_BASE_URL + path
|
62
|
-
|
63
|
-
get(url)
|
64
|
-
end
|
65
|
-
|
66
|
-
# コメントを削除
|
67
|
-
def delete_comment(comment_id:)
|
68
|
-
path = "/api/v2/comments/#{comment_id}"
|
69
|
-
url = API_BASE_URL + path
|
70
|
-
|
71
|
-
delete(url)
|
72
|
-
end
|
73
|
-
|
74
|
-
# コメントを取得
|
75
|
-
def fetch_comment(comment_id:)
|
76
|
-
path = "/api/v2/comments/#{comment_id}"
|
77
|
-
url = API_BASE_URL + path
|
78
|
-
|
79
|
-
get(url)
|
80
|
-
end
|
81
|
-
|
82
|
-
# コメントを更新
|
83
|
-
def update_comment(comment_id:, body:)
|
84
|
-
path = "/api/v2/comments/#{comment_id}"
|
85
|
-
url = API_BASE_URL + path
|
86
|
-
|
87
|
-
params = {
|
88
|
-
body: body
|
89
|
-
}
|
90
|
-
|
91
|
-
patch(url, params)
|
92
|
-
end
|
93
|
-
|
94
|
-
# 投稿に付けられたコメント一覧
|
95
|
-
def fetch_item_comments(item_id:)
|
96
|
-
path = "/api/v2/items/#{item_id}/comments"
|
97
|
-
url = API_BASE_URL + path
|
98
|
-
|
99
|
-
get(url)
|
100
|
-
end
|
101
|
-
|
102
|
-
# 記事に対してコメントを投稿
|
103
|
-
def post_comment(item_id:, body:)
|
104
|
-
path = "/api/v2/items/#{item_id}/comments"
|
105
|
-
url = API_BASE_URL + path
|
106
|
-
|
107
|
-
params = {
|
108
|
-
body: body
|
109
|
-
}
|
110
|
-
|
111
|
-
post(url, params)
|
112
|
-
end
|
113
|
-
|
114
|
-
# タグを取得
|
115
|
-
def fetch_tag(tag_id:)
|
116
|
-
path = "/api/v2/tags/#{tag_id}"
|
117
|
-
url = API_BASE_URL + path
|
118
|
-
|
119
|
-
get(url)
|
120
|
-
end
|
121
|
-
|
122
|
-
# ユーザがフォローしているタグ一覧
|
123
|
-
def fetch_following_tags(user_id:)
|
124
|
-
path = "/api/v2/users/#{user_id}/following_tags"
|
125
|
-
url = API_BASE_URL + path
|
126
|
-
|
127
|
-
get(url)
|
128
|
-
end
|
129
|
-
|
130
|
-
# タグのフォローを外す
|
131
|
-
def delete_following(tag_id:)
|
132
|
-
path = "/api/v2/tags/#{tag_id}/following"
|
133
|
-
url = API_BASE_URL + path
|
134
|
-
|
135
|
-
delete(url)
|
136
|
-
end
|
137
|
-
|
138
|
-
# タグをフォローしているかどうかを調る
|
139
|
-
def check_tag_following(tag_id:)
|
140
|
-
path = "/api/v2/tags/#{tag_id}/following"
|
141
|
-
url = API_BASE_URL + path
|
142
|
-
|
143
|
-
get(url)
|
144
|
-
end
|
145
|
-
|
146
|
-
# タグをフォロー
|
147
|
-
def follow_tag(tag_id:)
|
148
|
-
path = "/api/v2/tags/#{tag_id}/following"
|
149
|
-
url = API_BASE_URL + path
|
150
|
-
|
151
|
-
put(url)
|
152
|
-
end
|
153
|
-
|
154
|
-
# 記事をストックしているユーザ一覧を、ストックした日時の降順で返す
|
155
|
-
def fetch_item_stockers(item_id:)
|
156
|
-
path = "/api/v2/items/#{item_id}/stockers"
|
157
|
-
url = API_BASE_URL + path
|
158
|
-
|
159
|
-
get(url)
|
160
|
-
end
|
161
|
-
|
162
|
-
# 全てのユーザの一覧を作成日時の降順で取得
|
163
|
-
def fetch_users
|
164
|
-
path = "/api/v2/users"
|
165
|
-
url = API_BASE_URL + path
|
166
|
-
|
167
|
-
get(url)
|
168
|
-
end
|
169
|
-
|
170
|
-
# ユーザを取得
|
171
|
-
def fetch_user(user_id:)
|
172
|
-
path = "/api/v2/users/#{user_id}"
|
173
|
-
url = API_BASE_URL + path
|
174
|
-
|
175
|
-
get(url)
|
176
|
-
end
|
177
|
-
|
178
|
-
# ユーザがフォローしているユーザ一覧を取得
|
179
|
-
def fetch_followees(user_id:)
|
180
|
-
path = "/api/v2/users/#{user_id}/followees"
|
181
|
-
url = API_BASE_URL + path
|
182
|
-
|
183
|
-
get(url)
|
184
|
-
end
|
185
|
-
|
186
|
-
# ユーザをフォローしているユーザ一覧を取得
|
187
|
-
def fetch_followers(user_id:)
|
188
|
-
path = "/api/v2/users/#{user_id}/followers"
|
189
|
-
url = API_BASE_URL + path
|
190
|
-
|
191
|
-
get(url)
|
192
|
-
end
|
193
|
-
|
194
|
-
# ユーザへのフォローを外します。
|
195
|
-
def delete_following(user_id:)
|
196
|
-
path = "/api/v2/users/#{user_id}/following"
|
197
|
-
url = API_BASE_URL + path
|
198
|
-
|
199
|
-
delete(url)
|
200
|
-
end
|
201
|
-
|
202
|
-
# ユーザをフォローしている場合に204を返す
|
203
|
-
def check_following(user_id:)
|
204
|
-
path = "/api/v2/users/#{user_id}/following"
|
205
|
-
url = API_BASE_URL + path
|
206
|
-
|
207
|
-
get(url)
|
208
|
-
end
|
209
|
-
|
210
|
-
# ユーザをフォロー
|
211
|
-
def follow_user(user_id:)
|
212
|
-
path = "/api/v2/users/#{user_id}/following"
|
213
|
-
url = API_BASE_URL + path
|
214
|
-
|
215
|
-
put(url)
|
216
|
-
end
|
217
|
-
|
218
|
-
# 認証中のユーザの記事の一覧を作成日時の降順で返す
|
219
|
-
def fetch_my_items
|
220
|
-
path = "/api/v2/authenticated_user/items"
|
221
|
-
url = API_BASE_URL + path
|
222
|
-
|
223
|
-
get(url)
|
224
|
-
end
|
225
|
-
|
226
|
-
# 記事の一覧を作成日時の降順で返す
|
227
|
-
def fetch_items
|
228
|
-
path = '/api/v2/items'
|
229
|
-
url = API_BASE_URL + path
|
230
|
-
|
231
|
-
get(url)
|
232
|
-
end
|
233
|
-
|
234
|
-
# 新たに記事を作成
|
235
|
-
def post_item(params:)
|
236
|
-
path = "/api/v2/items"
|
237
|
-
url = API_BASE_URL + path
|
238
|
-
|
239
|
-
post(url, params)
|
240
|
-
end
|
241
|
-
|
242
|
-
# 記事を削除
|
243
|
-
def delete_item(item_id:)
|
244
|
-
path = "/api/v2/items/#{item_id}"
|
245
|
-
url = API_BASE_URL + path
|
246
|
-
|
247
|
-
delete(url)
|
248
|
-
end
|
249
|
-
|
250
|
-
# 記事を取得
|
251
|
-
def fetch_item(item_id:)
|
252
|
-
path = "/api/v2/items/#{item_id}"
|
253
|
-
url = API_BASE_URL + path
|
254
|
-
|
255
|
-
get(url)
|
256
|
-
end
|
257
|
-
|
258
|
-
# 記事を更新
|
259
|
-
def update_item(item_id:, params:)
|
260
|
-
path = "/api/v2/items/#{item_id}"
|
261
|
-
url = API_BASE_URL + path
|
262
|
-
|
263
|
-
patch(url, params)
|
264
|
-
end
|
265
|
-
|
266
|
-
# 記事をストック
|
267
|
-
def stock_item(item_id:)
|
268
|
-
path = "/api/v2/items/#{item_id}"
|
269
|
-
url = API_BASE_URL + path
|
270
|
-
|
271
|
-
put(url)
|
272
|
-
end
|
273
|
-
|
274
|
-
# 記事をストックから取り除く
|
275
|
-
def delete_stock(item_id:)
|
276
|
-
path = "/api/v2/items/#{item_id}"
|
277
|
-
url = API_BASE_URL + path
|
278
|
-
|
279
|
-
delete(url)
|
280
|
-
end
|
281
|
-
|
282
|
-
# 記事をストックしているかどうか調べる
|
283
|
-
def check_item_stock(item_id:)
|
284
|
-
path = "/api/v2/items/#{item_id}/stock"
|
285
|
-
url = API_BASE_URL + path
|
286
|
-
|
287
|
-
get(url)
|
288
|
-
end
|
289
|
-
|
290
|
-
# タグの記事一覧
|
291
|
-
def fetch_tag_items(tag_id:)
|
292
|
-
path = "/api/v2/tags/#{tag_id}/items"
|
293
|
-
url = API_BASE_URL + path
|
294
|
-
|
295
|
-
get(url)
|
296
|
-
end
|
297
|
-
|
298
|
-
# 指定されたユーザの記事一覧
|
299
|
-
def fetch_user_items(user_id:)
|
300
|
-
path = "/api/v2/tags/#{user_id}/items"
|
301
|
-
url = API_BASE_URL + path
|
302
|
-
|
303
|
-
get(url)
|
304
|
-
end
|
305
|
-
|
306
|
-
# 指定されたユーザがストックした記事一覧
|
307
|
-
def fetch_user_stocks(user_id:)
|
308
|
-
path = "/api/v2/users/#{user_id}/stocks"
|
309
|
-
url = API_BASE_URL + path
|
310
|
-
|
311
|
-
get(url)
|
312
|
-
end
|
313
|
-
|
314
|
-
# コメントに絵文字リアクションを付ける
|
315
|
-
def attach_reaction_to_comment(comment_id:, params)
|
316
|
-
path = "/api/v2/comments/#{comment_id}/reactions"
|
317
|
-
url = API_BASE_URL + path
|
318
|
-
|
319
|
-
post(url, params)
|
320
|
-
end
|
321
|
-
|
322
|
-
# 記事に絵文字リアクションを付ける
|
323
|
-
def attach_reaction_to_item(item_id: params)
|
324
|
-
path = "/api/v2/items/#{item_id}/reactions"
|
325
|
-
url = API_BASE_URL + path
|
326
|
-
|
327
|
-
post(url, params)
|
328
|
-
end
|
329
|
-
|
330
|
-
# コメントから絵文字リアクションを削除
|
331
|
-
def delete_comment_reaction(comment_id:, reaction_name:)
|
332
|
-
path = "/api/v2/comments/#{comment_id}/reactions/#{reaction_name}"
|
333
|
-
url = API_BASE_URL + path
|
334
|
-
|
335
|
-
delete(url)
|
336
|
-
end
|
337
|
-
|
338
|
-
# 記事から絵文字リアクションを削除
|
339
|
-
def delete_item_reaction(item_id:, reaction_name:)
|
340
|
-
path = "/api/v2/items/#{item_id}/reactions/#{reaction_name}"
|
341
|
-
url = API_BASE_URL + path
|
342
|
-
|
343
|
-
delete(url)
|
344
|
-
end
|
345
|
-
|
346
|
-
# コメントに付けられた絵文字リアクション一覧
|
347
|
-
def fetch_comment_reactions(comment_id:)
|
348
|
-
path = "/api/v2/comments/#{comment_id}/reactions"
|
349
|
-
url = API_BASE_URL + path
|
350
|
-
|
351
|
-
get(url)
|
352
|
-
end
|
353
|
-
|
354
|
-
# 記事に付けられた絵文字リアクション一覧
|
355
|
-
def fetch_item_reactions(item_id:)
|
356
|
-
path = "/api/v2/items/#{item_id}/reactions"
|
357
|
-
url = API_BASE_URL + path
|
358
|
-
|
359
|
-
get(url)
|
360
|
-
end
|
361
|
-
|
362
|
-
# アクセストークンに紐付いたユーザを返す
|
363
|
-
def fetch_authenticated_user
|
364
|
-
path = "/api/v2/authenticated_user"
|
365
|
-
url = API_BASE_URL + path
|
366
|
-
|
367
|
-
get(url)
|
65
|
+
def endpoint
|
66
|
+
@endpoint ||= API_BASE_URL
|
368
67
|
end
|
369
68
|
end
|
370
69
|
end
|