qiita-sdk 0.1.1 → 0.6.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: b720e463407c691d1fc4316968eb83bfb10ad842e74fd6cec3f2d1a3a2ec0c6d
4
- data.tar.gz: effae48c571e4cdc3b112f03b1362effd7d8f535c3c8222626acaa08f382bd29
3
+ metadata.gz: 2716dbba91a8409b7ce9d46224d0a4ece49295afdb823247051397d9c16a845e
4
+ data.tar.gz: f3e95589615131bfd2f81ffeaec87b38d31a85d55493d24772d6dd6a85596b8f
5
5
  SHA512:
6
- metadata.gz: 5f775f6ee09dc34cd50c377e7948958f4334647091a97a79928e8eeec1cc0004e38ce5bee07e33da6c7ba14801932c31414b9502f9ec828d6cdc1d3f8ffc1a55
7
- data.tar.gz: 17241491a0797797e44cdb4520d048999ed147bfdc18dc609a73055729cc4ecd2bb818119b2b4f9ed65b6ba0b53859fc1825931423bf67676d0ed2a25875f013
6
+ metadata.gz: 0e5f0c1e411c30547513a461603056a63492677a33c3e75ea6a236b6c8f1214a0f611a9752ee705b2201d91c1111298e0b90fca671d73a5a8adca9c4549e231d
7
+ data.tar.gz: 69741e730d90d4d00d35c2e2162c6342ab2990b122485eec5c0a73b543b07fd3fe4a20470b60237832689acf58ba43d19ec9122991bf60b20df04880c89eacc3
data/Gemfile CHANGED
@@ -7,3 +7,4 @@ gem 'rake', '~> 12.0'
7
7
  gem 'rspec', '~> 3.0'
8
8
  gem 'rubocop'
9
9
  gem 'webmock'
10
+ gem 'pry-byebug'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiita-sdk (0.1.0)
4
+ qiita-sdk (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -9,13 +9,22 @@ GEM
9
9
  addressable (2.7.0)
10
10
  public_suffix (>= 2.0.2, < 5.0)
11
11
  ast (2.4.1)
12
+ byebug (11.1.3)
13
+ coderay (1.1.3)
12
14
  crack (0.4.3)
13
15
  safe_yaml (~> 1.0.0)
14
16
  diff-lcs (1.4.4)
15
17
  hashdiff (1.0.1)
18
+ method_source (1.0.0)
16
19
  parallel (1.19.2)
17
20
  parser (2.7.1.4)
18
21
  ast (~> 2.4.1)
22
+ pry (0.13.1)
23
+ coderay (~> 1.1)
24
+ method_source (~> 1.0)
25
+ pry-byebug (3.9.0)
26
+ byebug (~> 11.0)
27
+ pry (~> 0.13.0)
19
28
  public_suffix (4.0.5)
20
29
  rainbow (3.0.0)
21
30
  rake (12.3.3)
@@ -57,6 +66,7 @@ PLATFORMS
57
66
  ruby
58
67
 
59
68
  DEPENDENCIES
69
+ pry-byebug
60
70
  qiita-sdk!
61
71
  rake (~> 12.0)
62
72
  rspec (~> 3.0)
data/README.md CHANGED
@@ -1,13 +1,9 @@
1
1
  # Qiita::Sdk
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/qiita/sdk`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ [Qiita Api](https://qiita.com/api/v2/docs) Api クライアント
6
4
 
7
5
  ## Installation
8
6
 
9
- Add this line to your application's Gemfile:
10
-
11
7
  ```ruby
12
8
  gem 'qiita-sdk'
13
9
  ```
@@ -22,18 +18,451 @@ Or install it yourself as:
22
18
 
23
19
  ## Usage
24
20
 
25
- TODO: Write usage instructions here
21
+ ### インスタンスの作成
22
+
23
+ ```ruby
24
+ client = Qiita::Sdk::Client.new
25
+ ```
26
+ <br />
27
+ <br />
28
+
29
+ 認証が必要なアクションを行う場合
30
+
31
+ ```ruby
32
+ client = Qiita::Sdk::Client.new do |config|
33
+ config.access_token = 'XXXX'
34
+ end
35
+ ```
36
+ <br />
37
+ <br />
38
+
39
+ ### メソッド一覧
40
+
41
+ 全て戻り値は [Net::HTTPResponse] を返す
42
+
43
+
44
+ - 記事につけられた「LGTM!」一覧を取得
45
+
46
+ ```ruby
47
+ item_id = 'XXXX'
48
+ res = client.fetch_item_likes(item_id: item_id)
49
+ ```
50
+ <br />
51
+ <br />
52
+
53
+
54
+ - コメントを削除
55
+
56
+ ```ruby
57
+ comment_id = 'XXXX'
58
+ client.delete_comment(comment_id: comment_id)
59
+ ```
60
+ <br />
61
+ <br />
62
+
63
+
64
+
65
+ - コメントを取得
66
+
67
+ ```ruby
68
+ comment_id = 'XXXX'
69
+ res = client.fetch_comment(comment_id: comment_id)
70
+ ```
71
+ <br />
72
+ <br />
73
+
74
+
75
+ - コメントを更新
76
+
77
+ ```ruby
78
+ comment_id = 'XXXX'
79
+ body = 'update body'
80
+ client.update_comment(comment_id: comment_id, body: body)
81
+ ```
82
+ <br />
83
+ <br />
84
+
85
+
86
+
87
+ - 投稿に紐づけられた投稿一覧
88
+
89
+ ```ruby
90
+ item_id = 'XXXX'
91
+ res = client.fetch_item_comments(item_id: item_id)
92
+ ```
93
+ <br />
94
+ <br />
95
+
96
+
97
+
98
+ - 記事に対してコメントを投稿
99
+
100
+ ```ruby
101
+ item_id = 'XXXX'
102
+ body = 'comment body'
103
+ client.post_comment(item_id: item_id, body: body)
104
+ ```
105
+ <br />
106
+ <br />
107
+
108
+
109
+
110
+ - タグを取得
111
+
112
+ ```ruby
113
+ tag_id = 'XXXX'
114
+ res = client.fetch_tag(tag_id: tag_id)
115
+ ```
116
+ <br />
117
+ <br />
118
+
119
+
120
+
121
+ - ユーザがフォローしているタグ一覧
122
+
123
+ ```ruby
124
+ user_id = 'XXXX'
125
+ res = client.fetch_following_tags(user_id: user_id)
126
+ ```
127
+ <br />
128
+ <br />
129
+
130
+
131
+
132
+ - タグのフォローを外す
133
+
134
+ ```ruby
135
+ tag_id = 'XXXX'
136
+ client.delete_tag_following(tag_id: tag_id)
137
+ ```
138
+ <br />
139
+ <br />
140
+
141
+
142
+
143
+ - タグをフォローしているかどうかを調る
144
+
145
+ ```ruby
146
+ tag_id = 'XXXX'
147
+ res = client.check_tag_following(tag_id: tag_id)
148
+ ```
149
+ <br />
150
+ <br />
151
+
152
+
153
+
154
+ - タグをフォロー
155
+
156
+ ```ruby
157
+ tag_id = 'XXXX'
158
+ client.follow_tag(tag_id: tag_id)
159
+ ```
160
+ <br />
161
+ <br />
162
+
163
+
164
+
165
+ - 記事をストックしているユーザ一覧を、ストックした日時の降順で返す
166
+
167
+ ```ruby
168
+ item_id = 'XXXX'
169
+ res = client.fetch_item_stockers(item_id: item_id)
170
+ ```
171
+ <br />
172
+ <br />
173
+
174
+
175
+
176
+ - 全てのユーザの一覧を作成日時の降順で取得
177
+
178
+ ```ruby
179
+ res = client.fetch_users
180
+ ```
181
+ <br />
182
+ <br />
183
+
184
+
185
+
186
+ - ユーザを取得
187
+
188
+ ```ruby
189
+ user_id = 'XXXX'
190
+ res = client.fetch_user(user_id: user_id)
191
+ ```
192
+ <br />
193
+ <br />
194
+
195
+
196
+
197
+ - ユーザがフォローしているユーザ一覧を取得
198
+
199
+ ```ruby
200
+ user_id = 'XXXX'
201
+ res = client.fetch_followees(user_id: user_id)
202
+ ```
203
+ <br />
204
+ <br />
205
+
206
+
207
+
208
+ - ユーザをフォローしているユーザ一覧を取得
209
+
210
+ ```ruby
211
+ user_id = 'XXXX'
212
+ res = client.fetch_followers(user_id: user_id)
213
+ ```
214
+ <br />
215
+ <br />
216
+
217
+
218
+
219
+ - ユーザへのフォローを外します。
220
+
221
+ ```ruby
222
+ user_id = 'XXXX'
223
+ client.delete_following(user_id: user_id)
224
+ ```
225
+ <br />
226
+ <br />
227
+
228
+
26
229
 
27
- ## Development
230
+ - ユーザをフォローしている場合に204を返す
231
+
232
+ ```ruby
233
+ user_id = 'XXXX'
234
+ res = client.check_following(user_id: user_id)
235
+ ```
236
+ <br />
237
+ <br />
238
+
239
+
240
+
241
+ - ユーザをフォロー
242
+
243
+ ```ruby
244
+ user_id = 'XXXX'
245
+ client.follow_user(user_id: user_id)
246
+ ```
247
+ <br />
248
+ <br />
249
+
250
+
251
+
252
+ - 認証中のユーザの記事の一覧を作成日時の降順で返す
253
+
254
+ ```ruby
255
+ res = client.fetch_my_items
256
+ ```
257
+ <br />
258
+ <br />
259
+
260
+
261
+
262
+ - 記事の一覧を作成日時の降順で返す
263
+
264
+ ```ruby
265
+ res = client.fetch_items
266
+ ```
267
+ <br />
268
+ <br />
269
+
270
+
271
+
272
+ - 新たに記事を作成
273
+
274
+ title, bodyは必須
275
+
276
+ デフォルト値
277
+ tweet = false
278
+ tags = []
279
+ restricted = false
280
+
281
+ ```ruby
282
+ title = 'title'
283
+ body = 'body'
284
+ tweet = true
285
+ tags = ['ruby', 'rails']
286
+ restricted = false
287
+
288
+ client.post_item(title: title, body: body, tweet: tweet, tags: tags, restricted: restricted)
289
+ ```
290
+ <br />
291
+ <br />
292
+
293
+
294
+ - 記事を削除
295
+
296
+ ```ruby
297
+ item_id = 'XXXX'
298
+ client.delete_item(item_id: item_id)
299
+ ```
300
+ <br />
301
+ <br />
302
+
303
+
304
+ - 記事を取得
305
+
306
+ ```ruby
307
+ item_id = 'XXXX'
308
+ res = client.fetch_item(item_id: item_id)
309
+ ```
310
+ <br />
311
+ <br />
312
+
313
+
314
+ - 記事を更新
315
+
316
+ ```ruby
317
+ item_id = 'XXXX'
318
+ title = 'update title'
319
+ body = 'update body'
320
+ restricted = false
321
+ tags = ['rails']
322
+
323
+ client.update_item(item_id: item_id, title: title, body: body, restricted: restricted, tags: tags)
324
+ ```
325
+ <br />
326
+ <br />
327
+
328
+
329
+ - 記事をストック
330
+
331
+ ```ruby
332
+ item_id = 'XXXX'
333
+ client.stock_item(item_id: item_id)
334
+ ```
335
+ <br />
336
+ <br />
337
+
338
+
339
+ - 記事をストックから取り除く
340
+
341
+ ```ruby
342
+ item_id = 'XXXX'
343
+ client.delete_stock(item_id: item_id)
344
+ ```
345
+ <br />
346
+ <br />
28
347
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
348
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
349
+ - 記事をストックしているかどうか調べる
350
+
351
+ ```ruby
352
+ item_id = 'XXXX'
353
+ res = client.check_item_stock(item_id: item_id)
354
+ ```
355
+ <br />
356
+ <br />
357
+
358
+
359
+ - タグの記事一覧
360
+
361
+ ```ruby
362
+ tag_id = 'XXXX'
363
+ res = client.fetch_tag_items(teg_id: tag_id)
364
+ ```
365
+ <br />
366
+ <br />
367
+
368
+
369
+ - 指定されたユーザの記事一覧
370
+
371
+ ```ruby
372
+ user_id = 'XXXX'
373
+ res = client.fetch_user_items(user_id: user_id)
374
+ ```
375
+ <br />
376
+ <br />
377
+
378
+
379
+ - 指定されたユーザがストックした記事一覧
380
+
381
+ ```ruby
382
+ user_id = 'XXXX'
383
+ res = client.fetch_user_stocks(user_id: user_id)
384
+ ```
385
+ <br />
386
+ <br />
387
+
388
+
389
+ - コメントに絵文字リアクションを付ける
390
+
391
+ ```ruby
392
+ comment_id = 'XXXX'
393
+ name = 'XXXX'
394
+
395
+ client.attach_reaction_to_comment(comment_id: comment_id, name: name)
396
+ ```
397
+ <br />
398
+ <br />
399
+
400
+
401
+ - 記事に絵文字リアクションを付ける
402
+
403
+ ```ruby
404
+ item_id = 'XXXX'
405
+ name = 'XXXX'
406
+
407
+ client.attach_reaction_to_item(item_id: item_id, name: name)
408
+ ```
409
+ <br />
410
+ <br />
411
+
412
+
413
+ - コメントから絵文字リアクションを削除
414
+
415
+ ```ruby
416
+ comment_id = 'XXXX'
417
+ reaction_name = 'XXXX'
418
+
419
+ client.delete_comment_reaction(comment_id: comment_id, reaction_name: reaction_name)
420
+ ```
421
+ <br />
422
+ <br />
423
+
424
+
425
+ - 記事から絵文字リアクションを削除
426
+
427
+ ```ruby
428
+ item_id = 'XXXX'
429
+ reaction_name = 'XXXX'
430
+
431
+ client.delete_item_reaction(item_id: item_id, reaction_name: reaction_name)
432
+ ```
433
+ <br />
434
+ <br />
32
435
 
33
- ## Contributing
34
436
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/qiita-sdk. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/qiita-sdk/blob/master/CODE_OF_CONDUCT.md).
437
+ - コメントに付けられた絵文字リアクション一覧
36
438
 
439
+ ```ruby
440
+ comment_id = 'XXXX'
441
+
442
+ res = client.fetch_comment_reactions(comment_id: comment_id)
443
+ ```
444
+ <br />
445
+ <br />
446
+
447
+
448
+ - 記事に付けられた絵文字リアクション一覧
449
+
450
+ ```ruby
451
+ item_id = 'XXXX'
452
+
453
+ res = client.fetch_item_reactions(item_id: item_id)
454
+ ```
455
+ <br />
456
+ <br />
457
+
458
+
459
+ - アクセストークンに紐付いたユーザを返す
460
+
461
+ ```ruby
462
+ res = client.fetch_authenticated_user
463
+ ```
464
+ <br />
465
+ <br />
37
466
 
38
467
  ## License
39
468
 
@@ -3,6 +3,7 @@ require 'qiita/sdk/api_actions'
3
3
  require 'qiita/sdk/client'
4
4
  require 'qiita/sdk/httpclient'
5
5
 
6
+
6
7
  module Qiita
7
8
  module Sdk
8
9
  class Error < StandardError; end
@@ -143,17 +143,27 @@ module Qiita
143
143
  end
144
144
 
145
145
  # 認証中のユーザの記事の一覧を作成日時の降順で返す
146
- def fetch_my_items
146
+ def fetch_my_items(per_page: 100, page: 1)
147
147
  path = '/api/v2/authenticated_user/items'
148
148
 
149
- get(path)
149
+ params = {
150
+ per_page: per_page,
151
+ page: page
152
+ }
153
+
154
+ get(path, params)
150
155
  end
151
156
 
152
157
  # 記事の一覧を作成日時の降順で返す
153
- def fetch_items
158
+ def fetch_items(per_page: 100, page: 1)
154
159
  path = '/api/v2/items'
155
160
 
156
- get(path)
161
+ params = {
162
+ per_page: per_page,
163
+ page: page
164
+ }
165
+
166
+ get(path, params)
157
167
  end
158
168
 
159
169
  # 新たに記事を作成
@@ -228,17 +238,27 @@ module Qiita
228
238
  end
229
239
 
230
240
  # 指定されたユーザの記事一覧
231
- def fetch_user_items(user_id:)
232
- path = "/api/v2/tags/#{user_id}/items"
241
+ def fetch_user_items(user_id:, per_page: 100, page: 1)
242
+ path = "/api/v2/users/#{user_id}/items"
233
243
 
234
- get(path)
244
+ params = {
245
+ per_page: per_page,
246
+ page: page
247
+ }
248
+
249
+ get(path, params)
235
250
  end
236
251
 
237
252
  # 指定されたユーザがストックした記事一覧
238
- def fetch_user_stocks(user_id:)
253
+ def fetch_user_stocks(user_id:, per_page: 100, per: 1)
239
254
  path = "/api/v2/users/#{user_id}/stocks"
240
255
 
241
- get(path)
256
+ params = {
257
+ per_page: per_page,
258
+ page: page
259
+ }
260
+
261
+ get(path, params)
242
262
  end
243
263
 
244
264
  # コメントに絵文字リアクションを付ける
@@ -32,10 +32,10 @@ module Qiita
32
32
  headers
33
33
  end
34
34
 
35
- def get(path)
35
+ def get(path, params)
36
36
  url = endpoint + path
37
37
  httpclient = HTTPClient.new
38
- httpclient.get(url, headers)
38
+ httpclient.get(url, params, headers)
39
39
  end
40
40
 
41
41
  def patch(path, params)
@@ -13,8 +13,10 @@ module Qiita
13
13
  http
14
14
  end
15
15
 
16
- def get(url, header = {})
16
+ def get(url, params = {}, header = {})
17
17
  uri = URI.parse(url)
18
+ query = URI.encode_www_form(params)
19
+ uri.query = query
18
20
 
19
21
  net_http(uri).get(uri.request_uri, header)
20
22
  end
@@ -1,5 +1,5 @@
1
1
  module Qiita
2
2
  module Sdk
3
- VERSION = '0.1.1'.freeze
3
+ VERSION = '0.6.0'.freeze
4
4
  end
5
5
  end
@@ -3,18 +3,18 @@ require_relative 'lib/qiita/sdk/version'
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'qiita-sdk'
5
5
  spec.version = Qiita::Sdk::VERSION
6
- spec.authors = ['yonetani']
6
+ spec.authors = ['sibakeny']
7
7
  spec.email = ['sbkn0919@gmail.com']
8
8
 
9
- spec.summary = 'qiita sdk'
10
- spec.description = 'qiita sdk'
11
- spec.homepage = 'http://example.com/'
9
+ spec.summary = 'qiita sdk for ruby'
10
+ spec.description = 'qiita sdk for ruby'
11
+ spec.homepage = 'https://gitlab.com/sibakeny/qiita-sdk'
12
12
  spec.license = 'MIT'
13
13
  spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
14
14
 
15
15
  spec.metadata['homepage_uri'] = spec.homepage
16
- spec.metadata['source_code_uri'] = 'http://example.com/'
17
- spec.metadata['changelog_uri'] = 'http://example.com/'
16
+ spec.metadata['source_code_uri'] = 'https://gitlab.com/sibakeny/qiita-sdk'
17
+ spec.metadata['changelog_uri'] = 'https://gitlab.com/sibakeny/qiita-sdk'
18
18
 
19
19
  # Specify which files should be added to the gem when it is released.
20
20
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qiita-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
- - yonetani
7
+ - sibakeny
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-29 00:00:00.000000000 Z
11
+ date: 2020-09-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: qiita sdk
13
+ description: qiita sdk for ruby
14
14
  email:
15
15
  - sbkn0919@gmail.com
16
16
  executables: []
@@ -35,13 +35,13 @@ files:
35
35
  - lib/qiita/sdk/httpclient.rb
36
36
  - lib/qiita/sdk/version.rb
37
37
  - qiita-sdk.gemspec
38
- homepage: http://example.com/
38
+ homepage: https://gitlab.com/sibakeny/qiita-sdk
39
39
  licenses:
40
40
  - MIT
41
41
  metadata:
42
- homepage_uri: http://example.com/
43
- source_code_uri: http://example.com/
44
- changelog_uri: http://example.com/
42
+ homepage_uri: https://gitlab.com/sibakeny/qiita-sdk
43
+ source_code_uri: https://gitlab.com/sibakeny/qiita-sdk
44
+ changelog_uri: https://gitlab.com/sibakeny/qiita-sdk
45
45
  post_install_message:
46
46
  rdoc_options: []
47
47
  require_paths:
@@ -60,5 +60,5 @@ requirements: []
60
60
  rubygems_version: 3.0.3
61
61
  signing_key:
62
62
  specification_version: 4
63
- summary: qiita sdk
63
+ summary: qiita sdk for ruby
64
64
  test_files: []