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 +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +69 -1
- data/docbase.gemspec +1 -0
- data/lib/docbase/client.rb +72 -8
- data/lib/docbase/version.rb +1 -1
- metadata +17 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 04de1814e9cdba377e46783519ead41b3471972cd19d4e32c058eb952ad9261d
|
|
4
|
+
data.tar.gz: 30f7944856b0157e89cc178b72f2d437a2ae1b1a6352b6437840566d461115fa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
data/lib/docbase/client.rb
CHANGED
|
@@ -21,8 +21,28 @@ module DocBase
|
|
|
21
21
|
@team
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
def
|
|
25
|
-
request(method: :get, path: "/teams/#{team!}/
|
|
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
|
|
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
|
|
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:
|
|
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
|
-
@
|
|
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
|
-
|
|
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
|
data/lib/docbase/version.rb
CHANGED
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:
|
|
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:
|
|
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:
|
|
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: []
|