kintone-client 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -0
- data/kintone-client.gemspec +1 -1
- data/lib/kintone/client/middleware/form.rb +6 -6
- data/lib/kintone/client/version.rb +1 -1
- data/spec/kintone/client/app_spec.rb +2 -2
- data/spec/kintone/client/apps_spec.rb +4 -4
- data/spec/kintone/client/bulkRequest_spec.rb +6 -6
- data/spec/kintone/client/record_post_spec.rb +12 -11
- data/spec/kintone/client/record_spec.rb +2 -2
- data/spec/kintone/client/records_spec.rb +43 -4
- data/spec/kintone/client/space_spec.rb +2 -2
- data/spec/spec_helper.rb +3 -2
- data/test.sh +8 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f45e8aea8f3bbfbd363bf255b787f1ebad043ff7
|
4
|
+
data.tar.gz: 302ba4e89536b92386c2212b7e3f2c614f6045ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a45e6ba3a2ad346d196baa3116604ab9aa3a621d341f1b1a301f51871878c537e037477bde705bc78e95052e1a6479ed36dd7f07fbe9b62a297d1a356fdafad
|
7
|
+
data.tar.gz: 231119937b7e73b04c25e062b35d6835349aa993849e3c2dce4af077d2f13160b5a9b814a3ab3bc9a92037652ad82b9ff91cddcc94483a363875e922f125505b
|
data/README.md
CHANGED
@@ -31,6 +31,20 @@ p client.records.get(app: 211)
|
|
31
31
|
|
32
32
|
# https://cybozudev.zendesk.com/hc/ja/articles/202166220-%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E5%8F%96%E5%BE%97
|
33
33
|
p client.space.members.get(id: 4)
|
34
|
+
|
35
|
+
# `"文字列__1行"=>"テスト"` -> `"文字列__1行"=>{"value"=>"テスト"}`
|
36
|
+
client.record.post_json(
|
37
|
+
{"app"=>1972,
|
38
|
+
"record"=>
|
39
|
+
{"文字列__1行"=>"テスト",
|
40
|
+
"文字列__複数行"=>"テスト\nテスト2",
|
41
|
+
"数値"=>20,
|
42
|
+
"日時"=>"2014-02-16T08:57:00Z",
|
43
|
+
"チェックボックス"=>{"value"=>["sample1", "sample2"]},
|
44
|
+
"ユーザー選択"=>{"value"=>[{"code"=>"sato"}]},
|
45
|
+
"ドロップダウン"=>"sample1",
|
46
|
+
"リンク_ウェブ"=>"https://www.cybozu.com",
|
47
|
+
"Table"=>{"value"=>[{"value"=>{"テーブル文字列"=>{"value"=>"テスト"}}}]}}})
|
34
48
|
```
|
35
49
|
|
36
50
|
## kintone API
|
data/kintone-client.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency 'faraday', '>= 0.8'
|
21
|
+
spec.add_dependency 'faraday', ENV['FARADAY_VERSION'] ? "= #{ENV['FARADAY_VERSION']}" : '>= 0.8.9'
|
22
22
|
spec.add_dependency 'faraday_middleware'
|
23
23
|
spec.add_development_dependency 'bundler'
|
24
24
|
spec.add_development_dependency 'rake'
|
@@ -7,13 +7,13 @@ module Kintone::Client::Middleware
|
|
7
7
|
def call(env)
|
8
8
|
@app.call(env).on_complete do |env|
|
9
9
|
if record = env[:body]['record']
|
10
|
-
env[:body] =
|
11
|
-
'record' => parse_form(record)
|
12
|
-
}
|
10
|
+
env[:body]['record'] = parse_form(record)
|
13
11
|
elsif records = env[:body]['records']
|
14
|
-
env[:body] = {
|
15
|
-
|
16
|
-
|
12
|
+
env[:body]['records'] = records.map {|r| parse_form(r) }
|
13
|
+
end
|
14
|
+
|
15
|
+
if totalCount = env[:body]['totalCount']
|
16
|
+
env[:body]['totalCount'] = totalCount.to_i
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -17,8 +17,8 @@ describe Kintone::Client do
|
|
17
17
|
it do
|
18
18
|
client = kintone_client do |stub|
|
19
19
|
stub.get('/k/v1/app.json') do |env|
|
20
|
-
expect(params_from_url(env)).to eq
|
21
|
-
expect(env
|
20
|
+
expect(params_from_url(env)).to eq({"id"=>["4"]})
|
21
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
22
22
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
23
23
|
end
|
24
24
|
end
|
@@ -29,8 +29,8 @@ describe Kintone::Client do
|
|
29
29
|
it do
|
30
30
|
client = kintone_client do |stub|
|
31
31
|
stub.get('/k/v1/apps.json') do |env|
|
32
|
-
expect(params_from_url(env)).to eq
|
33
|
-
expect(env
|
32
|
+
expect(params_from_url(env)).to eq({"codes[0]"=>["FOO"], "codes[1]"=>["BAR"], "name"=>["TEST"]})
|
33
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
34
34
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
35
35
|
end
|
36
36
|
end
|
@@ -45,7 +45,7 @@ describe Kintone::Client do
|
|
45
45
|
client = kintone_client do |stub|
|
46
46
|
stub.get('/k/v1/apps.json') do |env|
|
47
47
|
expect(params_from_url(env)).to be_nil
|
48
|
-
expect(env
|
48
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
49
49
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
50
50
|
end
|
51
51
|
end
|
@@ -64,7 +64,7 @@ describe Kintone::Client do
|
|
64
64
|
client = kintone_client do |stub|
|
65
65
|
stub.get('/k/v1/apps.json') do |env|
|
66
66
|
expect(params_from_url(env)).to be_nil
|
67
|
-
expect(env
|
67
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
68
68
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
69
69
|
end
|
70
70
|
end
|
@@ -44,9 +44,9 @@ describe Kintone::Client do
|
|
44
44
|
it do
|
45
45
|
client = kintone_client do |stub|
|
46
46
|
stub.post('/k/v1/bulkRequest.json') do |env|
|
47
|
-
expect(env
|
48
|
-
expect(env
|
49
|
-
expect(env
|
47
|
+
expect(env[:body]).to eq JSON.dump(request)
|
48
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
49
|
+
expect(env[:request_headers]['Content-Type']).to eq 'application/json'
|
50
50
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
51
51
|
end
|
52
52
|
end
|
@@ -58,9 +58,9 @@ describe Kintone::Client do
|
|
58
58
|
it do
|
59
59
|
client = kintone_client do |stub|
|
60
60
|
stub.post('/k/v1/bulkRequest.json') do |env|
|
61
|
-
expect(env
|
62
|
-
expect(env
|
63
|
-
expect(env
|
61
|
+
expect(env[:body]).to eq JSON.dump(request)
|
62
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
63
|
+
expect(env[:request_headers]['Content-Type']).to eq 'application/json'
|
64
64
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
65
65
|
end
|
66
66
|
end
|
@@ -23,10 +23,10 @@ describe Kintone::Client do
|
|
23
23
|
"数値"=>20,
|
24
24
|
"日時"=>"2014-02-16T08:57:00Z",
|
25
25
|
"チェックボックス"=>{"value"=>["sample1", "sample2"]},
|
26
|
-
"ユーザー選択"=>{
|
26
|
+
"ユーザー選択"=>{value: [{"code"=>"sato"}]},
|
27
27
|
"ドロップダウン"=>"sample1",
|
28
28
|
"リンク_ウェブ"=>"https://www.cybozu.com",
|
29
|
-
"Table"=>{
|
29
|
+
"Table"=>{value: [{"value"=>{"テーブル文字列"=>{value: "テスト"}}}]}}}
|
30
30
|
end
|
31
31
|
|
32
32
|
let(:response) do
|
@@ -36,9 +36,9 @@ describe Kintone::Client do
|
|
36
36
|
it do
|
37
37
|
client = kintone_client do |stub|
|
38
38
|
stub.post('/k/v1/record.json') do |env|
|
39
|
-
expect(env
|
40
|
-
expect(env
|
41
|
-
expect(env
|
39
|
+
expect(env[:body]).to eq JSON.dump(request)
|
40
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
41
|
+
expect(env[:request_headers]['Content-Type']).to eq 'application/json'
|
42
42
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
43
43
|
end
|
44
44
|
end
|
@@ -50,9 +50,9 @@ describe Kintone::Client do
|
|
50
50
|
it do
|
51
51
|
client = kintone_client do |stub|
|
52
52
|
stub.post('/k/v1/record.json') do |env|
|
53
|
-
expect(env
|
54
|
-
expect(env
|
55
|
-
expect(env
|
53
|
+
expect(env[:body]).to eq JSON.dump(request)
|
54
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
55
|
+
expect(env[:request_headers]['Content-Type']).to eq 'application/json'
|
56
56
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
57
57
|
end
|
58
58
|
end
|
@@ -61,6 +61,7 @@ describe Kintone::Client do
|
|
61
61
|
expect(result).to eq response
|
62
62
|
end
|
63
63
|
|
64
|
+
# https://cybozudev.zendesk.com/hc/ja/articles/201941754-REST-API%E3%81%AE%E5%85%B1%E9%80%9A%E4%BB%95%E6%A7%98#step10
|
64
65
|
context 'when error happens' do
|
65
66
|
let(:request) do
|
66
67
|
{"app"=>1972}
|
@@ -73,9 +74,9 @@ describe Kintone::Client do
|
|
73
74
|
it do
|
74
75
|
client = kintone_client do |stub|
|
75
76
|
stub.post('/k/v1/record.json') do |env|
|
76
|
-
expect(env
|
77
|
-
expect(env
|
78
|
-
expect(env
|
77
|
+
expect(env[:body]).to eq JSON.dump(request)
|
78
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
79
|
+
expect(env[:request_headers]['Content-Type']).to eq 'application/json'
|
79
80
|
[400, {'Content-Type' => 'json'}, JSON.dump(response)]
|
80
81
|
end
|
81
82
|
end
|
@@ -81,8 +81,8 @@ describe Kintone::Client do
|
|
81
81
|
it do
|
82
82
|
client = kintone_client do |stub|
|
83
83
|
stub.get('/k/v1/record.json') do |env|
|
84
|
-
expect(params_from_url(env)).to eq
|
85
|
-
expect(env
|
84
|
+
expect(params_from_url(env)).to eq({"app"=>["8"], "id"=>["100"]})
|
85
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
86
86
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
87
87
|
end
|
88
88
|
end
|
@@ -29,10 +29,15 @@ describe Kintone::Client do
|
|
29
29
|
it do
|
30
30
|
client = kintone_client do |stub|
|
31
31
|
stub.get('/k/v1/record.json') do |env|
|
32
|
-
expect(params_from_url(env)).to eq
|
33
|
-
app
|
34
|
-
|
35
|
-
|
32
|
+
expect(params_from_url(env)).to eq({
|
33
|
+
"app"=>["8"],
|
34
|
+
"fields[0]"=>["record_id"],
|
35
|
+
"fields[1]"=>["created_time"],
|
36
|
+
"fields[2]"=>["dropdown"],
|
37
|
+
"query"=>["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"]
|
38
|
+
})
|
39
|
+
|
40
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
36
41
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
37
42
|
end
|
38
43
|
end
|
@@ -46,5 +51,39 @@ describe Kintone::Client do
|
|
46
51
|
expect(result).to eq parsed_response
|
47
52
|
end
|
48
53
|
end
|
54
|
+
|
55
|
+
context 'when with totalCount' do
|
56
|
+
before do
|
57
|
+
response['totalCount'] = '1'
|
58
|
+
parsed_response['totalCount'] = 1
|
59
|
+
end
|
60
|
+
|
61
|
+
it do
|
62
|
+
client = kintone_client do |stub|
|
63
|
+
stub.get('/k/v1/record.json') do |env|
|
64
|
+
expect(params_from_url(env)).to eq({
|
65
|
+
"app"=>["8"],
|
66
|
+
"fields[0]"=>["record_id"],
|
67
|
+
"fields[1]"=>["created_time"],
|
68
|
+
"fields[2]"=>["dropdown"],
|
69
|
+
"query"=>["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"],
|
70
|
+
"totalCount"=>["true"]
|
71
|
+
})
|
72
|
+
|
73
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
74
|
+
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
result = client.record.get(
|
79
|
+
app: 8,
|
80
|
+
query: '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',
|
81
|
+
fields: ["record_id", "created_time", "dropdown"],
|
82
|
+
totalCount: true
|
83
|
+
)
|
84
|
+
|
85
|
+
expect(result).to eq parsed_response
|
86
|
+
end
|
87
|
+
end
|
49
88
|
end
|
50
89
|
end
|
@@ -48,8 +48,8 @@ describe Kintone::Client do
|
|
48
48
|
it do
|
49
49
|
client = kintone_client do |stub|
|
50
50
|
stub.get('/k/v1/space.json') do |env|
|
51
|
-
expect(params_from_url(env)).to eq
|
52
|
-
expect(env
|
51
|
+
expect(params_from_url(env)).to eq({"id"=>["1"]})
|
52
|
+
expect(env[:request_headers]['X-Cybozu-Authorization']).to eq TEST_AUTH_HEADER
|
53
53
|
[200, {'Content-Type' => 'json'}, JSON.dump(response)]
|
54
54
|
end
|
55
55
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'kintone/client'
|
2
|
+
require 'cgi'
|
2
3
|
|
3
4
|
TEST_AUTH_HEADER = 'c2NvdHQ6dGlnZXI='
|
4
5
|
|
@@ -13,6 +14,6 @@ def kintone_client
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def params_from_url(env)
|
16
|
-
query = URI.parse(env
|
17
|
-
query ?
|
17
|
+
query = URI.parse(env[:url].to_s).query
|
18
|
+
query ? CGI.parse(query) : query
|
18
19
|
end
|
data/test.sh
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kintone-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.8.9
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.8.9
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday_middleware
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +122,7 @@ files:
|
|
122
122
|
- spec/kintone/client/records_spec.rb
|
123
123
|
- spec/kintone/client/space_spec.rb
|
124
124
|
- spec/spec_helper.rb
|
125
|
+
- test.sh
|
125
126
|
homepage: ''
|
126
127
|
licenses:
|
127
128
|
- MIT
|