docbase 2.1.2 → 3.0.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: 20af66cc5d5085854e9aef5f65e57383291a8f217961a4fa6cead0bb2e678941
4
- data.tar.gz: 24cf39072ac1eaf9c4cc700f6ee2bcc694939b5c4d26427cb932aedeabf499f0
3
+ metadata.gz: 04de1814e9cdba377e46783519ead41b3471972cd19d4e32c058eb952ad9261d
4
+ data.tar.gz: 30f7944856b0157e89cc178b72f2d437a2ae1b1a6352b6437840566d461115fa
5
5
  SHA512:
6
- metadata.gz: 12a494552034d86ba01f68a95e30a438ed068307223d83dd23b9e92fa23f15a85dc98cee60577342696b123ec2b5153f0935d77b58a3887f810da919beb7b0f8
7
- data.tar.gz: d5dc0fea1f5d08a13ea5df13c38c504e11a80b5a82f121ce9afe7d087cb1d4b06d48188434939bd41758a67029aacc692fd7db8466fd5db9c1f2fe6023a3ef7c
6
+ metadata.gz: 63c7b0575d1b5ca821ae2cf0c6cde0ba94514321ce061f7f8f4c1e8a63e6ab8040e2d219a857d87b5b71e375e539faf16e427f900fa5265b2fcda755bc901644
7
+ data.tar.gz: af1764af0574365f63fdc14e9a206fb983632cb17c705cb442f68f9228c92b87a4c4c8af2fa66bf31200c77b0b02a408c85fa023445d62c0cfe9c4565d61dc2c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 3.0.0
2
+
3
+ * DocBase API v3対応
4
+ * プロフィール、所属グループ一覧、メンバー削除、コメント一覧、メモ本文部分更新、グッジョブAPIを追加
5
+ * `users`の`include_user_groups`引数を削除(v3で廃止)
6
+ * Ruby 3.4以降向けに`base64`依存を追加
7
+ * `X-Api-Version`ヘッダを削除(v3トークンでAPIバージョンが決まる)
8
+ * `create_comment`が`post_id`をリクエストボディに含めてしまう不具合を修正
9
+ * バイナリ取得用コネクションがJSON用と共有されていた不具合を修正
10
+
1
11
  ## 2.1.2
2
12
 
3
13
  * 利用制限時にリトライできるように
data/README.md CHANGED
@@ -36,13 +36,33 @@ client = DocBase::Client.new(access_token: 'your_access_token', team: 'your_team
36
36
  * [#16](https://github.com/krayinc/docbase-ruby/issues/16)
37
37
  * true or false
38
38
 
39
+ ### profile
40
+
41
+ ```ruby
42
+ client.profile.body
43
+ ```
44
+
39
45
  ### users
40
46
 
41
47
  ```ruby
42
48
  client.users(q: 'name')
43
49
  client.users(q: 'name', page: 2)
44
50
  client.users(q: 'name', page: 1, per_page: 100)
45
- client.users(q: 'name', page: 1, per_page: 100, include_user_groups: true)
51
+ ```
52
+
53
+ 所属グループはv3ではユーザー検索APIのレスポンスに含まれません。`user_groups`を利用してください。
54
+
55
+ #### User groups
56
+
57
+ ```ruby
58
+ client.user_groups(1).body
59
+ client.user_groups(1, page: 2, per_page: 20).body
60
+ ```
61
+
62
+ #### Delete user
63
+
64
+ ```ruby
65
+ client.delete_user(1)
46
66
  ```
47
67
 
48
68
  ### tags
@@ -150,6 +170,25 @@ params = {
150
170
  client.update_post(params)
151
171
  ```
152
172
 
173
+ #### Partial body update
174
+
175
+ ```ruby
176
+ params = {
177
+ id: 1,
178
+ operations: [
179
+ {
180
+ start: 3,
181
+ end: 5,
182
+ old_content: "line3\r\nline4\r\nline5",
183
+ content: 'new text',
184
+ },
185
+ ],
186
+ notice: true,
187
+ }
188
+
189
+ client.update_post_body(params)
190
+ ```
191
+
153
192
  #### Archive
154
193
 
155
194
  ```ruby
@@ -170,6 +209,13 @@ client.delete_post(1)
170
209
 
171
210
  ### Comment
172
211
 
212
+ #### List
213
+
214
+ ```ruby
215
+ client.comments(1).body
216
+ client.comments(1, page: 2, per_page: 20, order: 'desc').body
217
+ ```
218
+
173
219
  #### Create
174
220
 
175
221
  ```ruby
@@ -188,6 +234,28 @@ client.create_comment(params)
188
234
  client.delete_comment(1)
189
235
  ```
190
236
 
237
+ ### good jobs
238
+
239
+ #### List
240
+
241
+ ```ruby
242
+ client.good_jobs(1).body
243
+ client.good_jobs(1, page: 2, per_page: 100, order: 'desc').body
244
+ ```
245
+
246
+ #### Create
247
+
248
+ ```ruby
249
+ client.create_good_job(1)
250
+ client.create_good_job(1, notice: false)
251
+ ```
252
+
253
+ #### Delete
254
+
255
+ ```ruby
256
+ client.delete_good_job(1, 111)
257
+ ```
258
+
191
259
  ### attachments
192
260
 
193
261
  #### Create
data/docbase.gemspec CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ['lib']
19
19
 
20
+ spec.add_dependency 'base64'
20
21
  spec.add_dependency 'faraday', '>= 0.15.2'
21
22
  spec.add_dependency 'faraday_middleware', '>= 0.12.2'
22
23
  end
@@ -21,8 +21,28 @@ module DocBase
21
21
  @team
22
22
  end
23
23
 
24
- def users(q: nil, page: 1, per_page: 100, include_user_groups: false)
25
- request(method: :get, path: "/teams/#{team!}/users", params: { q: q, page: page, per_page: per_page, include_user_groups: include_user_groups })
24
+ def profile
25
+ request(method: :get, path: "/teams/#{team!}/profile")
26
+ end
27
+
28
+ def users(q: nil, page: 1, per_page: 100)
29
+ request(
30
+ method: :get,
31
+ path: "/teams/#{team!}/users",
32
+ params: { q: q, page: page, per_page: per_page }
33
+ )
34
+ end
35
+
36
+ def user_groups(user_id, page: 1, per_page: 20)
37
+ request(
38
+ method: :get,
39
+ path: "/teams/#{team!}/users/#{user_id}/groups",
40
+ params: { page: page, per_page: per_page }
41
+ )
42
+ end
43
+
44
+ def delete_user(id)
45
+ request(method: :delete, path: "/teams/#{team!}/users/#{id}")
26
46
  end
27
47
 
28
48
  def tags
@@ -71,12 +91,20 @@ module DocBase
71
91
 
72
92
  def update_post(params)
73
93
  post_id = params[:id].to_i
74
- raise NotSetTeamError if post_id <= 0
94
+ raise NotSetPostIdError if post_id <= 0
75
95
 
76
96
  post_params = except(params, :id)
77
97
  request(method: :patch, path: "/teams/#{team!}/posts/#{post_id}", params: post_params)
78
98
  end
79
99
 
100
+ def update_post_body(params)
101
+ post_id = params[:id].to_i
102
+ raise NotSetPostIdError if post_id <= 0
103
+
104
+ body_params = except(params, :id)
105
+ request(method: :patch, path: "/teams/#{team!}/posts/#{post_id}/body", params: body_params)
106
+ end
107
+
80
108
  def delete_post(id)
81
109
  request(method: :delete, path: "/teams/#{team!}/posts/#{id}")
82
110
  end
@@ -89,18 +117,54 @@ module DocBase
89
117
  request(method: :put, path: "/teams/#{team!}/posts/#{id}/unarchive")
90
118
  end
91
119
 
120
+ def comments(post_id, page: 1, per_page: 20, order: 'asc', created_after: nil, created_before: nil)
121
+ request(
122
+ method: :get,
123
+ path: "/teams/#{team!}/posts/#{post_id}/comments",
124
+ params: {
125
+ page: page,
126
+ per_page: per_page,
127
+ order: order,
128
+ created_after: created_after,
129
+ created_before: created_before,
130
+ }
131
+ )
132
+ end
133
+
92
134
  def create_comment(params)
93
135
  post_id = params[:post_id].to_i
94
- raise NotSetTeamError if post_id <= 0
136
+ raise NotSetPostIdError if post_id <= 0
95
137
 
96
138
  comment_params = except(params, :post_id)
97
- request(method: :post, path: "/teams/#{team!}/posts/#{post_id}/comments", params: params)
139
+ request(method: :post, path: "/teams/#{team!}/posts/#{post_id}/comments", params: comment_params)
98
140
  end
99
141
 
100
142
  def delete_comment(id)
101
143
  request(method: :delete, path: "/teams/#{team!}/comments/#{id}")
102
144
  end
103
145
 
146
+ def good_jobs(post_id, page: 1, per_page: 100, order: 'asc', created_after: nil, created_before: nil)
147
+ request(
148
+ method: :get,
149
+ path: "/teams/#{team!}/posts/#{post_id}/good_jobs",
150
+ params: {
151
+ page: page,
152
+ per_page: per_page,
153
+ order: order,
154
+ created_after: created_after,
155
+ created_before: created_before,
156
+ }
157
+ )
158
+ end
159
+
160
+ def create_good_job(post_id, params = {})
161
+ request(method: :post, path: "/teams/#{team!}/posts/#{post_id}/good_jobs", params: params)
162
+ end
163
+
164
+ def delete_good_job(post_id, good_job_id)
165
+ request(method: :delete, path: "/teams/#{team!}/posts/#{post_id}/good_jobs/#{good_job_id}")
166
+ end
167
+
104
168
  def upload(paths)
105
169
  paths = [paths] unless paths.instance_of?(Array)
106
170
 
@@ -134,7 +198,7 @@ module DocBase
134
198
  end
135
199
 
136
200
  def connection_for_binary
137
- @connection ||= Faraday.new({ url: @url, headers: headers }) do |faraday|
201
+ @connection_for_binary ||= Faraday.new({ url: @url, headers: headers }) do |faraday|
138
202
  faraday.request :json
139
203
  faraday.adapter Faraday.default_adapter
140
204
  end
@@ -145,12 +209,12 @@ module DocBase
145
209
  'Accept' => 'application/json',
146
210
  'User-Agent' => USER_AGENT,
147
211
  'X-DocBaseToken' => access_token,
148
- 'X-Api-Version' => '2',
149
212
  }
150
213
  end
151
214
 
152
215
  def request(method:, path:, params: nil, for_binary: false)
153
- response = for_binary ? connection_for_binary.send(method, path, params) : connection.send(method, path, params)
216
+ conn = for_binary ? connection_for_binary : connection
217
+ response = conn.send(method, path, params)
154
218
  raise TooManyRequestError if retry_on_rate_limit_exceeded && response.status == 429
155
219
  response
156
220
  rescue TooManyRequestError
@@ -1,3 +1,3 @@
1
1
  module DocBase
2
- VERSION = '2.1.2'
2
+ VERSION = '3.0.0'
3
3
  end
metadata CHANGED
@@ -1,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ttakuru88
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-05-11 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: base64
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: faraday
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -64,7 +77,6 @@ homepage: https://github.com/krayinc/docbase-ruby
64
77
  licenses:
65
78
  - MIT
66
79
  metadata: {}
67
- post_install_message:
68
80
  rdoc_options: []
69
81
  require_paths:
70
82
  - lib
@@ -79,8 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
91
  - !ruby/object:Gem::Version
80
92
  version: '0'
81
93
  requirements: []
82
- rubygems_version: 3.1.4
83
- signing_key:
94
+ rubygems_version: 4.0.10
84
95
  specification_version: 4
85
96
  summary: DocBase API Client, written in Ruby
86
97
  test_files: []