kintone 0.1.1 → 0.1.2
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/.gitignore +1 -0
- data/.travis.yml +8 -0
- data/Guardfile +2 -2
- data/README.md +42 -8
- data/lib/kintone/api.rb +28 -71
- data/lib/kintone/api/guest.rb +28 -51
- data/lib/kintone/command/accessor.rb +99 -0
- data/lib/kintone/command/bulk_request.rb +12 -0
- data/lib/kintone/command/record.rb +4 -2
- data/lib/kintone/command/records.rb +2 -1
- data/lib/kintone/query.rb +2 -0
- data/lib/kintone/version.rb +1 -1
- data/spec/kintone/api/guest_spec.rb +12 -0
- data/spec/kintone/api_spec.rb +12 -0
- data/spec/kintone/command/bulk_request_spec.rb +71 -0
- data/spec/kintone/command/record_spec.rb +64 -39
- data/spec/kintone/command/records_spec.rb +138 -65
- data/spec/kintone/query_spec.rb +199 -10
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf4c8005133bbbca3d1167a4d6b0465f01154176
|
4
|
+
data.tar.gz: 5ffb28f4d5f8c50e13d5c67beb5d8bdee900b497
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a5a62448f89a07c5fb8c6638e77f2dcbbeb813ce2698003ea92f27c55d35714644d5a059be98343ea5c63d21429a0b0163a1b9e0c77b01d069f510521212fa6
|
7
|
+
data.tar.gz: b4fe9f583b016bd39c86a9dac52b40c0c7d56dd449434c17cd74676bb8cb7294b8cb3636a802fe22e31ba345b835f2355794c0366808d98fe57c9acf558598fe
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Guardfile
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
guard :rspec, all_after_pass: false, all_on_start: false do
|
1
|
+
guard :rspec, all_after_pass: false, all_on_start: false, cmd: 'bundle exec rspec' do
|
2
2
|
watch(%r{spec/.+_spec\.rb$})
|
3
3
|
watch(%r{lib/(.+)\.rb$}) {|m| "spec/#{m[1]}_spec.rb"}
|
4
4
|
watch(%r{lib/(.+)/.+\.rb$}) {|m| "spec/#{m[1]}_spec.rb"}
|
5
5
|
end
|
6
6
|
|
7
|
-
guard :rubocop, all_on_start: false do
|
7
|
+
guard :rubocop, all_on_start: false, cmd: 'bundle exec rubocop' do
|
8
8
|
watch(%r{.+\.rb$})
|
9
9
|
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
10
10
|
end
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# kintone
|
2
2
|
|
3
|
+
[](https://travis-ci.org/jue58/kintone)
|
4
|
+
|
3
5
|
A Ruby gem for communicating with the [kintone](https://kintone.cybozu.com/us/) REST API
|
4
6
|
|
5
7
|
## Requirements
|
@@ -26,6 +28,7 @@ api = Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu")
|
|
26
28
|
- [Record register](#record_register)
|
27
29
|
- [Record update](#record_update)
|
28
30
|
- [Record delete](#record_delete)
|
31
|
+
- [Bulk request](#bulk_request)
|
29
32
|
- [Format retrieval](#format_retrieval)
|
30
33
|
- [Permissions](#permissions)
|
31
34
|
- [Space management](#space_management)
|
@@ -58,6 +61,16 @@ query =
|
|
58
61
|
limit(10)
|
59
62
|
offset(20)
|
60
63
|
end
|
64
|
+
# or
|
65
|
+
query =
|
66
|
+
Kintone::Query.new do
|
67
|
+
f(:updated_time) > "2012-02-03T09:00:00+0900"
|
68
|
+
and!
|
69
|
+
f(:updated_time) < "2012-02-03T10:00:00+0900"
|
70
|
+
order_by(:record_id)
|
71
|
+
limit(10)
|
72
|
+
offset(20)
|
73
|
+
end
|
61
74
|
query.to_s # => "updated_time > \"2012-02-03T09:00:00+0900\" and updated_time < \"2012-02-03T10:00:00+0900\" order by record_id asc limit 10 offset 20"
|
62
75
|
api.records.get(app, query, fields)
|
63
76
|
|
@@ -121,12 +134,12 @@ offset | offset(30)
|
|
121
134
|
# Use Hash
|
122
135
|
app = 7
|
123
136
|
record = {"number" => {"value" => "123456"}}
|
124
|
-
api.record.register(app, record) # => {"id" => "100"}
|
137
|
+
api.record.register(app, record) # => {"id" => "100", "revision" => "1"}
|
125
138
|
|
126
139
|
# Use Kintone::Type::Record
|
127
140
|
app = 7
|
128
141
|
record = Kintone::Type::Record.new(number: "123456")
|
129
|
-
api.record.register(app, record) # => {"id" => "100"}
|
142
|
+
api.record.register(app, record) # => {"id" => "100", "revision" => "1"}
|
130
143
|
|
131
144
|
# Records register(batch)
|
132
145
|
# Use Hash
|
@@ -135,7 +148,7 @@ records = [
|
|
135
148
|
{"number" => {"value" => "123456"}},
|
136
149
|
{"number" => {"value" => "7890"}}
|
137
150
|
]
|
138
|
-
api.records.register(app, records) # => {"ids" => ["100", "101"]}
|
151
|
+
api.records.register(app, records) # => {"ids" => ["100", "101"], "revisions" => ["1", "1"]}
|
139
152
|
|
140
153
|
# Use Kintone::Type::Record
|
141
154
|
app = 7
|
@@ -143,7 +156,7 @@ records = [
|
|
143
156
|
Kintone::Type::Record.new(number: "123456"),
|
144
157
|
Kintone::Type::Record.new(number: "7890")
|
145
158
|
]
|
146
|
-
api.records.register(app, records) # => {"ids" => ["100", "101"]}
|
159
|
+
api.records.register(app, records) # => {"ids" => ["100", "101"], "revisions" => ["1", "1"]}
|
147
160
|
|
148
161
|
# Deprecated
|
149
162
|
api.record.create(app, record)
|
@@ -157,12 +170,15 @@ api.records.create(app, records)
|
|
157
170
|
# Use Hash
|
158
171
|
app = 4; id = 1
|
159
172
|
record = {"string_multi" => {"value" => "changed!"}}
|
160
|
-
api.record.update(app, id, record) # => {}
|
173
|
+
api.record.update(app, id, record) # => {"revision" => "2"}
|
161
174
|
|
162
175
|
# Use Kintone::Type::Record
|
163
176
|
app = 4; id = 1
|
164
177
|
record = Kintone::Type::Record.new({string_multi: "changed!"})
|
165
|
-
api.record.update(app, id, record) # => {}
|
178
|
+
api.record.update(app, id, record) # => {"revision" => "2"}
|
179
|
+
|
180
|
+
# With revision
|
181
|
+
api.record.update(app, id, record, revision: 1)
|
166
182
|
|
167
183
|
# Records update(batch)
|
168
184
|
# Use Hash
|
@@ -171,7 +187,7 @@ records = [
|
|
171
187
|
{"id" => 1, "record" => {"string_multi" => {"value" => "abcdef"}}},
|
172
188
|
{"id" => 2, "record" => {"string_multi" => {"value" => "opqrstu"}}}
|
173
189
|
]
|
174
|
-
api.records.update(app, records) # => {}
|
190
|
+
api.records.update(app, records) # => {"records" => [{"id" => "1", "revision" => "2"}, {"id" => "2", "revision" => "2"}]}
|
175
191
|
|
176
192
|
# Use Kintone::Type::Record
|
177
193
|
app = 4
|
@@ -179,7 +195,14 @@ records = [
|
|
179
195
|
{id: 1, record: Kintone::Type::Record.new(string_multi: "abcdef")},
|
180
196
|
{id: 2, record: Kintone::Type::Record.new(string_multi: "opqrstu")}
|
181
197
|
]
|
182
|
-
api.records.update(app, records) # => {}
|
198
|
+
api.records.update(app, records) # => {"records" => [{"id" => "1", "revision" => "2"}, {"id" => "2", "revision" => "2"}]}
|
199
|
+
|
200
|
+
# with revision
|
201
|
+
records = [
|
202
|
+
{id: 1, revision: 1, record: Kintone::Type::Record.new(string_multi: "abcdef")},
|
203
|
+
{id: 2, revision: 1, record: Kintone::Type::Record.new(string_multi: "opqrstu")}
|
204
|
+
]
|
205
|
+
api.records.update(app, records)
|
183
206
|
```
|
184
207
|
|
185
208
|
### <a name="record_delete"> Record delete
|
@@ -187,6 +210,17 @@ api.records.update(app, records) # => {}
|
|
187
210
|
```ruby
|
188
211
|
app = 8; ids = [100, 80]
|
189
212
|
api.records.delete(app, ids) # => {}
|
213
|
+
|
214
|
+
# With revision
|
215
|
+
revisions = [1, 1]
|
216
|
+
api.records.delete(app, ids, revisions: revisions)
|
217
|
+
```
|
218
|
+
|
219
|
+
### <a name="bulk_request"> Bulk request
|
220
|
+
|
221
|
+
```ruby
|
222
|
+
requests = {"requests" => [{"method" => "POST", ...}, {"method" => "PUT", ...}]}
|
223
|
+
api.bulk.request(requests) # => {"results" => [...]}
|
190
224
|
```
|
191
225
|
|
192
226
|
### <a name="format_retrieval"> Format retrieval
|
data/lib/kintone/api.rb
CHANGED
@@ -2,27 +2,32 @@ require 'faraday'
|
|
2
2
|
require 'faraday_middleware'
|
3
3
|
require 'base64'
|
4
4
|
require 'json'
|
5
|
-
require 'kintone/command/
|
6
|
-
require 'kintone/command/records'
|
7
|
-
require 'kintone/command/form'
|
8
|
-
require 'kintone/command/app_acl'
|
9
|
-
require 'kintone/command/record_acl'
|
10
|
-
require 'kintone/command/field_acl'
|
11
|
-
require 'kintone/command/template_space'
|
12
|
-
require 'kintone/command/space'
|
13
|
-
require 'kintone/command/space_body'
|
14
|
-
require 'kintone/command/space_thread'
|
15
|
-
require 'kintone/command/space_members'
|
16
|
-
require 'kintone/command/guests'
|
17
|
-
require 'kintone/command/app'
|
18
|
-
require 'kintone/command/apps'
|
19
|
-
require 'kintone/command/apis'
|
5
|
+
require 'kintone/command/accessor'
|
20
6
|
require 'kintone/api/guest'
|
21
7
|
require 'kintone/query'
|
22
8
|
|
23
9
|
class Kintone::Api
|
24
10
|
BASE_PATH = '/k/v1/'
|
25
11
|
COMMAND = '%s.json'
|
12
|
+
ACCESSIBLE_COMMAND = [
|
13
|
+
:record,
|
14
|
+
:records,
|
15
|
+
:form,
|
16
|
+
:app_acl,
|
17
|
+
:record_acl,
|
18
|
+
:field_acl,
|
19
|
+
:template_space,
|
20
|
+
:space,
|
21
|
+
:space_body,
|
22
|
+
:space_thread,
|
23
|
+
:space_members,
|
24
|
+
:guests,
|
25
|
+
:app,
|
26
|
+
:apps,
|
27
|
+
:apis,
|
28
|
+
:bulk_request,
|
29
|
+
:bulk
|
30
|
+
].freeze
|
26
31
|
|
27
32
|
def initialize(domain, user, password)
|
28
33
|
token = Base64.encode64("#{user}:#{password}")
|
@@ -83,63 +88,15 @@ class Kintone::Api
|
|
83
88
|
response.body
|
84
89
|
end
|
85
90
|
|
86
|
-
def
|
87
|
-
|
91
|
+
def method_missing(name, *args)
|
92
|
+
if ACCESSIBLE_COMMAND.include?(name)
|
93
|
+
CommandAccessor.send(name, self)
|
94
|
+
else
|
95
|
+
super(name, *args)
|
96
|
+
end
|
88
97
|
end
|
89
98
|
|
90
|
-
|
91
|
-
Kintone::Command::
|
92
|
-
end
|
93
|
-
|
94
|
-
def form
|
95
|
-
Kintone::Command::Form.new(self)
|
96
|
-
end
|
97
|
-
|
98
|
-
def app_acl
|
99
|
-
Kintone::Command::AppAcl.new(self)
|
100
|
-
end
|
101
|
-
|
102
|
-
def record_acl
|
103
|
-
Kintone::Command::RecordAcl.new(self)
|
104
|
-
end
|
105
|
-
|
106
|
-
def field_acl
|
107
|
-
Kintone::Command::FieldAcl.new(self)
|
108
|
-
end
|
109
|
-
|
110
|
-
def template_space
|
111
|
-
Kintone::Command::TemplateSpace.new(self)
|
112
|
-
end
|
113
|
-
|
114
|
-
def space
|
115
|
-
Kintone::Command::Space.new(self)
|
116
|
-
end
|
117
|
-
|
118
|
-
def space_body
|
119
|
-
Kintone::Command::SpaceBody.new(self)
|
120
|
-
end
|
121
|
-
|
122
|
-
def space_thread
|
123
|
-
Kintone::Command::SpaceThread.new(self)
|
124
|
-
end
|
125
|
-
|
126
|
-
def space_members
|
127
|
-
Kintone::Command::SpaceMembers.new(self)
|
128
|
-
end
|
129
|
-
|
130
|
-
def guests
|
131
|
-
Kintone::Command::Guests.new(self)
|
132
|
-
end
|
133
|
-
|
134
|
-
def app
|
135
|
-
Kintone::Command::App.new(self)
|
136
|
-
end
|
137
|
-
|
138
|
-
def apps
|
139
|
-
Kintone::Command::Apps.new(self)
|
140
|
-
end
|
141
|
-
|
142
|
-
def apis
|
143
|
-
Kintone::Command::Apis.new(self)
|
99
|
+
class CommandAccessor
|
100
|
+
extend Kintone::Command::Accessor
|
144
101
|
end
|
145
102
|
end
|
data/lib/kintone/api/guest.rb
CHANGED
@@ -1,12 +1,31 @@
|
|
1
1
|
require 'forwardable'
|
2
2
|
require 'kintone/api'
|
3
|
-
require 'kintone/command/
|
3
|
+
require 'kintone/command/accessor'
|
4
4
|
|
5
5
|
class Kintone::Api
|
6
6
|
class Guest
|
7
7
|
extend Forwardable
|
8
8
|
|
9
9
|
GUEST_PATH = '/k/guest/%s/v1/'
|
10
|
+
ACCESSIBLE_COMMAND = [
|
11
|
+
:record,
|
12
|
+
:records,
|
13
|
+
:form,
|
14
|
+
:app_acl,
|
15
|
+
:record_acl,
|
16
|
+
:field_acl,
|
17
|
+
:space,
|
18
|
+
:space_body,
|
19
|
+
:space_thread,
|
20
|
+
:space_members,
|
21
|
+
:space_guests,
|
22
|
+
:app,
|
23
|
+
:apps,
|
24
|
+
:bulk_request,
|
25
|
+
:bulk
|
26
|
+
].freeze
|
27
|
+
|
28
|
+
def_delegators :@api, :get, :post, :put, :delete
|
10
29
|
|
11
30
|
def initialize(space_id, api)
|
12
31
|
@api = api
|
@@ -17,58 +36,16 @@ class Kintone::Api
|
|
17
36
|
@guest_path + (COMMAND % command)
|
18
37
|
end
|
19
38
|
|
20
|
-
def
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
def form
|
29
|
-
Kintone::Command::Form.new(self)
|
30
|
-
end
|
31
|
-
|
32
|
-
def app_acl
|
33
|
-
Kintone::Command::AppAcl.new(self)
|
34
|
-
end
|
35
|
-
|
36
|
-
def record_acl
|
37
|
-
Kintone::Command::RecordAcl.new(self)
|
38
|
-
end
|
39
|
-
|
40
|
-
def field_acl
|
41
|
-
Kintone::Command::FieldAcl.new(self)
|
42
|
-
end
|
43
|
-
|
44
|
-
def space
|
45
|
-
Kintone::Command::Space.new(self)
|
46
|
-
end
|
47
|
-
|
48
|
-
def space_body
|
49
|
-
Kintone::Command::SpaceBody.new(self)
|
50
|
-
end
|
51
|
-
|
52
|
-
def space_thread
|
53
|
-
Kintone::Command::SpaceThread.new(self)
|
54
|
-
end
|
55
|
-
|
56
|
-
def space_members
|
57
|
-
Kintone::Command::SpaceMembers.new(self)
|
39
|
+
def method_missing(name, *args)
|
40
|
+
if ACCESSIBLE_COMMAND.include?(name)
|
41
|
+
CommandAccessor.send(name, self)
|
42
|
+
else
|
43
|
+
super(name, *args)
|
44
|
+
end
|
58
45
|
end
|
59
46
|
|
60
|
-
|
61
|
-
Kintone::Command::
|
47
|
+
class CommandAccessor
|
48
|
+
extend Kintone::Command::Accessor
|
62
49
|
end
|
63
|
-
|
64
|
-
def app
|
65
|
-
Kintone::Command::App.new(self)
|
66
|
-
end
|
67
|
-
|
68
|
-
def apps
|
69
|
-
Kintone::Command::Apps.new(self)
|
70
|
-
end
|
71
|
-
|
72
|
-
def_delegators :@api, :get, :post, :put, :delete
|
73
50
|
end
|
74
51
|
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
class Kintone::Command
|
2
|
+
# common
|
3
|
+
autoload :Record, 'kintone/command/record'
|
4
|
+
autoload :Records, 'kintone/command/records'
|
5
|
+
autoload :BulkRequest, 'kintone/command/bulk_request'
|
6
|
+
autoload :Form, 'kintone/command/form'
|
7
|
+
autoload :App, 'kintone/command/app'
|
8
|
+
autoload :Apps, 'kintone/command/apps'
|
9
|
+
autoload :AppAcl, 'kintone/command/app_acl'
|
10
|
+
autoload :RecordAcl, 'kintone/command/record_acl'
|
11
|
+
autoload :FieldAcl, 'kintone/command/field_acl'
|
12
|
+
autoload :Space, 'kintone/command/space'
|
13
|
+
autoload :SpaceBody, 'kintone/command/space_body'
|
14
|
+
autoload :SpaceThread, 'kintone/command/space_thread'
|
15
|
+
autoload :SpaceMembers, 'kintone/command/space_members'
|
16
|
+
|
17
|
+
# other than guest
|
18
|
+
autoload :TemplateSpace, 'kintone/command/template_space'
|
19
|
+
autoload :Guests, 'kintone/command/guests'
|
20
|
+
autoload :Apis, 'kintone/command/apis'
|
21
|
+
|
22
|
+
# guest only
|
23
|
+
autoload :SpaceGuests, 'kintone/command/space_guests'
|
24
|
+
|
25
|
+
module Accessor
|
26
|
+
# common
|
27
|
+
def record(api)
|
28
|
+
Record.new(api)
|
29
|
+
end
|
30
|
+
|
31
|
+
def records(api)
|
32
|
+
Records.new(api)
|
33
|
+
end
|
34
|
+
|
35
|
+
def bulk_request(api)
|
36
|
+
BulkRequest.new(api)
|
37
|
+
end
|
38
|
+
|
39
|
+
def form(api)
|
40
|
+
Form.new(api)
|
41
|
+
end
|
42
|
+
|
43
|
+
def app(api)
|
44
|
+
App.new(api)
|
45
|
+
end
|
46
|
+
|
47
|
+
def apps(api)
|
48
|
+
Apps.new(api)
|
49
|
+
end
|
50
|
+
|
51
|
+
def app_acl(api)
|
52
|
+
AppAcl.new(api)
|
53
|
+
end
|
54
|
+
|
55
|
+
def record_acl(api)
|
56
|
+
RecordAcl.new(api)
|
57
|
+
end
|
58
|
+
|
59
|
+
def field_acl(api)
|
60
|
+
FieldAcl.new(api)
|
61
|
+
end
|
62
|
+
|
63
|
+
def space(api)
|
64
|
+
Space.new(api)
|
65
|
+
end
|
66
|
+
|
67
|
+
def space_body(api)
|
68
|
+
SpaceBody.new(api)
|
69
|
+
end
|
70
|
+
|
71
|
+
def space_thread(api)
|
72
|
+
SpaceThread.new(api)
|
73
|
+
end
|
74
|
+
|
75
|
+
def space_members(api)
|
76
|
+
SpaceMembers.new(api)
|
77
|
+
end
|
78
|
+
|
79
|
+
# other than guest
|
80
|
+
def template_space(api)
|
81
|
+
TemplateSpace.new(api)
|
82
|
+
end
|
83
|
+
|
84
|
+
def guests(api)
|
85
|
+
Guests.new(api)
|
86
|
+
end
|
87
|
+
|
88
|
+
def apis(api)
|
89
|
+
Apis.new(api)
|
90
|
+
end
|
91
|
+
|
92
|
+
# guest only
|
93
|
+
def space_guests(api)
|
94
|
+
SpaceGuests.new(api)
|
95
|
+
end
|
96
|
+
|
97
|
+
alias_method :bulk, :bulk_request
|
98
|
+
end
|
99
|
+
end
|