kintone 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -0
- data/.travis.yml +2 -1
- data/README.md +166 -6
- data/kintone.gemspec +4 -2
- data/lib/kintone.rb +1 -0
- data/lib/kintone/api.rb +30 -3
- data/lib/kintone/api/guest.rb +17 -0
- data/lib/kintone/command/apis.rb +22 -0
- data/lib/kintone/command/app.rb +11 -0
- data/lib/kintone/command/guests.rb +15 -0
- data/lib/kintone/command/record.rb +6 -2
- data/lib/kintone/command/records.rb +9 -5
- data/lib/kintone/command/space_guests.rb +11 -0
- data/lib/kintone/command/space_members.rb +16 -0
- data/lib/kintone/command/space_thread.rb +14 -0
- data/lib/kintone/query.rb +146 -0
- data/lib/kintone/query/extension.rb +23 -0
- data/lib/kintone/type.rb +6 -0
- data/lib/kintone/type/extension/enumerable.rb +5 -0
- data/lib/kintone/type/extension/hash.rb +5 -0
- data/lib/kintone/type/extension/object.rb +5 -0
- data/lib/kintone/type/record.rb +11 -0
- data/lib/kintone/version.rb +1 -1
- data/spec/kintone/api/guest_spec.rb +41 -2
- data/spec/kintone/api_spec.rb +83 -20
- data/spec/kintone/command/apis_spec.rb +113 -0
- data/spec/kintone/command/app_spec.rb +33 -0
- data/spec/kintone/command/guests_spec.rb +65 -0
- data/spec/kintone/command/record_spec.rb +55 -37
- data/spec/kintone/command/records_spec.rb +50 -18
- data/spec/kintone/command/space_guests_spec.rb +34 -0
- data/spec/kintone/command/space_members_spec.rb +80 -0
- data/spec/kintone/command/space_spec.rb +1 -1
- data/spec/kintone/command/space_thread_spec.rb +52 -0
- data/spec/kintone/query_spec.rb +294 -0
- data/spec/kintone/type/record_spec.rb +38 -0
- data/spec/spec_helper.rb +1 -0
- metadata +67 -10
@@ -0,0 +1,113 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'kintone/command/apis'
|
3
|
+
|
4
|
+
describe Kintone::Command::Apis do
|
5
|
+
let(:target) { Kintone::Command::Apis.new(api) }
|
6
|
+
let(:api) { Kintone::Api.new('example.cybozu.com', 'Administrator', 'cybozu') }
|
7
|
+
|
8
|
+
describe '#get' do
|
9
|
+
before(:each) do
|
10
|
+
stub_request(
|
11
|
+
:get,
|
12
|
+
'https://example.cybozu.com/k/v1/apis.json'
|
13
|
+
)
|
14
|
+
.to_return(body: response_data.to_json, status: 200)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { target.get }
|
18
|
+
|
19
|
+
def response_data
|
20
|
+
{
|
21
|
+
'baseUrl' => 'https://example.cybozu.com/k/v1/',
|
22
|
+
'apis' => {
|
23
|
+
'records/get' => {
|
24
|
+
'link' => 'apis/records/get.json'
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
it { is_expected.to eq(response_data) }
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '#get_details_of' do
|
34
|
+
before(:each) do
|
35
|
+
stub_request(
|
36
|
+
:get,
|
37
|
+
'https://example.cybozu.com/k/v1/apis/records/get.json'
|
38
|
+
)
|
39
|
+
.to_return(body: response_data.to_json, status: 200)
|
40
|
+
end
|
41
|
+
|
42
|
+
subject { target.get_details_of(link) }
|
43
|
+
|
44
|
+
let(:link) { 'apis/records/get.json' }
|
45
|
+
|
46
|
+
def response_data
|
47
|
+
{
|
48
|
+
'id' => 'GetRecords',
|
49
|
+
'baseUrl' => 'https://example.cybozu.com/k/v1/',
|
50
|
+
'path' => 'records.json',
|
51
|
+
'httpMethod' => 'GET'
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
55
|
+
it { is_expected.to eq(response_data) }
|
56
|
+
end
|
57
|
+
|
58
|
+
describe '#get_details_of_key' do
|
59
|
+
before(:each) do
|
60
|
+
stub_request(
|
61
|
+
:get,
|
62
|
+
'https://example.cybozu.com/k/v1/apis.json'
|
63
|
+
)
|
64
|
+
.to_return(body: apis_response_data.to_json, status: 200)
|
65
|
+
|
66
|
+
stub_request(
|
67
|
+
:get,
|
68
|
+
'https://example.cybozu.com/k/v1/apis/records/get.json'
|
69
|
+
)
|
70
|
+
.to_return(body: api_response_data.to_json, status: 200)
|
71
|
+
end
|
72
|
+
|
73
|
+
subject { target.get_details_of_key(key) }
|
74
|
+
|
75
|
+
def apis_response_data
|
76
|
+
{
|
77
|
+
'baseUrl' => 'https://example.cybozu.com/k/v1/',
|
78
|
+
'apis' => {
|
79
|
+
'records/get' => {
|
80
|
+
'link' => 'apis/records/get.json'
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
84
|
+
end
|
85
|
+
|
86
|
+
def api_response_data
|
87
|
+
{
|
88
|
+
'id' => 'GetRecords',
|
89
|
+
'baseUrl' => 'https://example.cybozu.com/k/v1/',
|
90
|
+
'path' => 'records.json',
|
91
|
+
'httpMethod' => 'GET'
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
95
|
+
context 'with key that exists' do
|
96
|
+
let(:key) { 'records/get' }
|
97
|
+
|
98
|
+
it { is_expected.to eq(api_response_data) }
|
99
|
+
end
|
100
|
+
|
101
|
+
context 'with key that does not exists' do
|
102
|
+
let(:key) { 'records/hoge' }
|
103
|
+
|
104
|
+
it { expect { subject }.to raise_error NoMethodError }
|
105
|
+
end
|
106
|
+
|
107
|
+
context 'with nil' do
|
108
|
+
let(:key) { nil }
|
109
|
+
|
110
|
+
it { expect { subject }.to raise_error NoMethodError }
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'kintone/command/app'
|
3
|
+
|
4
|
+
describe Kintone::Command::App do
|
5
|
+
let(:target) { Kintone::Command::App.new(api) }
|
6
|
+
let(:api) { Kintone::Api.new('example.cybozu.com', 'Administrator', 'cybozu') }
|
7
|
+
|
8
|
+
describe '#get' do
|
9
|
+
before(:each) do
|
10
|
+
stub_request(
|
11
|
+
:get,
|
12
|
+
'https://example.cybozu.com/k/v1/app.json'
|
13
|
+
)
|
14
|
+
.with(query: { id: id })
|
15
|
+
.to_return(body: response_data.to_json, status: 200)
|
16
|
+
end
|
17
|
+
|
18
|
+
subject { target.get(id) }
|
19
|
+
|
20
|
+
let(:id) { 4 }
|
21
|
+
|
22
|
+
def response_data
|
23
|
+
{
|
24
|
+
appId: '4',
|
25
|
+
code: '',
|
26
|
+
name: 'アプリ',
|
27
|
+
description: 'よいアプリです'
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
it { is_expected.to be_kind_of(Hash) }
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'kintone/command/guests'
|
3
|
+
require 'kintone/api'
|
4
|
+
|
5
|
+
describe Kintone::Command::Guests do
|
6
|
+
let(:target) { Kintone::Command::Guests.new(api) }
|
7
|
+
let(:api) { Kintone::Api.new('example.cybozu.com', 'Administrator', 'cybozu') }
|
8
|
+
|
9
|
+
describe '#create' do
|
10
|
+
before(:each) do
|
11
|
+
stub_request(
|
12
|
+
:post,
|
13
|
+
'https://example.cybozu.com/k/v1/guests.json'
|
14
|
+
)
|
15
|
+
.with(body: { guests: guests }.to_json)
|
16
|
+
.to_return(body: '{}', status: 200)
|
17
|
+
end
|
18
|
+
|
19
|
+
subject { target.create(guests) }
|
20
|
+
|
21
|
+
let(:guests) do
|
22
|
+
[
|
23
|
+
{
|
24
|
+
code: 'hoge@example.com',
|
25
|
+
password: 'password',
|
26
|
+
timezone: 'Asia/Tokyo',
|
27
|
+
locale: 'ja',
|
28
|
+
image: '78a586f2-e73e-4a70-bec2-43976a60746e',
|
29
|
+
name: '東京 三郎',
|
30
|
+
surNameReading: 'とうきょう',
|
31
|
+
givenNameReading: 'さぶろう',
|
32
|
+
company: 'サイボウズ株式会社',
|
33
|
+
division: '営業部',
|
34
|
+
phone: '999-456-7890',
|
35
|
+
callto: 'tokyo3rou'
|
36
|
+
}
|
37
|
+
]
|
38
|
+
end
|
39
|
+
|
40
|
+
it { is_expected.to be_truthy }
|
41
|
+
end
|
42
|
+
|
43
|
+
describe '#delete' do
|
44
|
+
before(:each) do
|
45
|
+
stub_request(
|
46
|
+
:delete,
|
47
|
+
'https://example.cybozu.com/k/v1/guests.json'
|
48
|
+
)
|
49
|
+
.with(body: { guests: guests }.to_json)
|
50
|
+
.to_return(body: '{}', status: 200)
|
51
|
+
end
|
52
|
+
|
53
|
+
subject { target.delete(guests) }
|
54
|
+
|
55
|
+
let(:guests) do
|
56
|
+
[
|
57
|
+
'guest1@example.com',
|
58
|
+
'guest2@example.com',
|
59
|
+
'guest3@example.com'
|
60
|
+
]
|
61
|
+
end
|
62
|
+
|
63
|
+
it { is_expected.to be_truthy }
|
64
|
+
end
|
65
|
+
end
|
@@ -1,46 +1,36 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'kintone/command/record'
|
3
3
|
require 'kintone/api'
|
4
|
+
require 'kintone/type/record'
|
4
5
|
|
5
6
|
describe Kintone::Command::Record do
|
6
7
|
let(:target) { Kintone::Command::Record.new(api) }
|
7
8
|
let(:api) { Kintone::Api.new('www.example.com', 'Administrator', 'cybozu') }
|
8
9
|
|
9
10
|
describe '#get' do
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
'https://www.example.com/k/v1/record.json?app=8&id=100'
|
17
|
-
)
|
18
|
-
.to_return(body: "{\"result\":\"ok\"}", status: 200)
|
19
|
-
end
|
20
|
-
|
21
|
-
let(:app) { 8 }
|
22
|
-
let(:id) { 100 }
|
23
|
-
|
24
|
-
it { expect(subject).to eq 'result' => 'ok' }
|
11
|
+
before(:each) do
|
12
|
+
stub_request(
|
13
|
+
:get,
|
14
|
+
'https://www.example.com/k/v1/record.json?app=8&id=100'
|
15
|
+
)
|
16
|
+
.to_return(body: "{\"result\":\"ok\"}", status: 200)
|
25
17
|
end
|
26
18
|
|
27
|
-
|
28
|
-
before(:each) do
|
29
|
-
stub_request(
|
30
|
-
:get,
|
31
|
-
'https://www.example.com/k/v1/record.json?app=8&id=100'
|
32
|
-
)
|
33
|
-
.to_return(body: "{\"result\":\"ok\"}", status: 200)
|
34
|
-
end
|
19
|
+
subject { target.get(app, id) }
|
35
20
|
|
36
|
-
|
37
|
-
|
21
|
+
where(:app, :id) do
|
22
|
+
[
|
23
|
+
[8, 100],
|
24
|
+
['8', '100']
|
25
|
+
]
|
26
|
+
end
|
38
27
|
|
28
|
+
with_them do
|
39
29
|
it { expect(subject).to eq 'result' => 'ok' }
|
40
30
|
end
|
41
31
|
end
|
42
32
|
|
43
|
-
describe '#
|
33
|
+
describe '#register' do
|
44
34
|
before(:each) do
|
45
35
|
stub_request(
|
46
36
|
:post,
|
@@ -50,10 +40,9 @@ describe Kintone::Command::Record do
|
|
50
40
|
.to_return(body: "{\"id\":\"100\"}", status: 200)
|
51
41
|
end
|
52
42
|
|
53
|
-
subject { target.
|
43
|
+
subject { target.register(app, record) }
|
54
44
|
|
55
45
|
let(:app) { 7 }
|
56
|
-
let(:record) { hash_record }
|
57
46
|
|
58
47
|
def hash_record
|
59
48
|
{
|
@@ -63,16 +52,27 @@ describe Kintone::Command::Record do
|
|
63
52
|
}
|
64
53
|
end
|
65
54
|
|
66
|
-
|
67
|
-
|
55
|
+
def record_record
|
56
|
+
Kintone::Type::Record.new(
|
57
|
+
number: '123456',
|
58
|
+
rich_editor: 'testtest',
|
59
|
+
user_select: [{ 'code' => 'sato' }]
|
60
|
+
)
|
61
|
+
end
|
68
62
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
63
|
+
where(:record, :result) do
|
64
|
+
[
|
65
|
+
[hash_record, { 'id' => '100' }],
|
66
|
+
[record_record, { 'id' => '100' }]
|
67
|
+
]
|
68
|
+
end
|
69
|
+
|
70
|
+
with_them do
|
71
|
+
it { expect(subject).to eq result }
|
74
72
|
end
|
73
|
+
end
|
75
74
|
|
75
|
+
describe '#update' do
|
76
76
|
before(:each) do
|
77
77
|
stub_request(
|
78
78
|
:put,
|
@@ -86,8 +86,26 @@ describe Kintone::Command::Record do
|
|
86
86
|
|
87
87
|
let(:app) { 4 }
|
88
88
|
let(:id) { 1 }
|
89
|
-
let(:record) { hash_record }
|
90
89
|
|
91
|
-
|
90
|
+
def hash_record
|
91
|
+
{
|
92
|
+
'string_multi' => { 'value' => 'character string is changed' }
|
93
|
+
}
|
94
|
+
end
|
95
|
+
|
96
|
+
def record_record
|
97
|
+
Kintone::Type::Record.new(string_multi: 'character string is changed')
|
98
|
+
end
|
99
|
+
|
100
|
+
where(:record, :result) do
|
101
|
+
[
|
102
|
+
[hash_record, {}],
|
103
|
+
[record_record, {}]
|
104
|
+
]
|
105
|
+
end
|
106
|
+
|
107
|
+
with_them do
|
108
|
+
it { expect(subject).to match result }
|
109
|
+
end
|
92
110
|
end
|
93
111
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'kintone/command/records'
|
3
3
|
require 'kintone/api'
|
4
|
+
require 'kintone/type'
|
4
5
|
|
5
6
|
describe Kintone::Command::Records do
|
6
7
|
let(:target) { Kintone::Command::Records.new(api) }
|
@@ -90,11 +91,22 @@ describe Kintone::Command::Records do
|
|
90
91
|
end
|
91
92
|
end
|
92
93
|
|
93
|
-
describe '#
|
94
|
-
subject { target.
|
94
|
+
describe '#register' do
|
95
|
+
subject { target.register(app, records) }
|
95
96
|
|
96
97
|
context '' do
|
97
|
-
|
98
|
+
before(:each) do
|
99
|
+
stub_request(
|
100
|
+
:post,
|
101
|
+
'https://example.cybozu.com/k/v1/records.json'
|
102
|
+
)
|
103
|
+
.with(body: { 'app' => 7, 'records' => hash_data }.to_json)
|
104
|
+
.to_return(body: "{\"ids\":[\"100\", \"101\"]}", status: 200)
|
105
|
+
end
|
106
|
+
|
107
|
+
let(:app) { 7 }
|
108
|
+
|
109
|
+
def hash_data
|
98
110
|
[
|
99
111
|
{
|
100
112
|
'rich_editor' => { 'value' => 'testtest' }
|
@@ -105,19 +117,23 @@ describe Kintone::Command::Records do
|
|
105
117
|
]
|
106
118
|
end
|
107
119
|
|
108
|
-
|
109
|
-
|
110
|
-
:
|
111
|
-
|
112
|
-
|
113
|
-
.with(body: { 'app' => 7, 'records' => records_data }.to_json)
|
114
|
-
.to_return(body: "{\"ids\":[\"100\", \"101\"]}", status: 200)
|
120
|
+
def record_data
|
121
|
+
[
|
122
|
+
Kintone::Type::Record.new(rich_editor: 'testtest'),
|
123
|
+
Kintone::Type::Record.new(user_select: [{ code: 'suzuki' }])
|
124
|
+
]
|
115
125
|
end
|
116
126
|
|
117
|
-
|
118
|
-
|
127
|
+
where(:records, :result) do
|
128
|
+
[
|
129
|
+
[hash_data, { 'ids' => %w(100 101) }],
|
130
|
+
[record_data, { 'ids' => %w(100 101) }]
|
131
|
+
]
|
132
|
+
end
|
119
133
|
|
120
|
-
|
134
|
+
with_them do
|
135
|
+
it { expect(subject).to eq result }
|
136
|
+
end
|
121
137
|
end
|
122
138
|
end
|
123
139
|
|
@@ -130,21 +146,36 @@ describe Kintone::Command::Records do
|
|
130
146
|
:put,
|
131
147
|
'https://example.cybozu.com/k/v1/records.json'
|
132
148
|
)
|
133
|
-
.with(body: { 'app' => 4, 'records' =>
|
149
|
+
.with(body: { 'app' => 4, 'records' => hash_data }.to_json)
|
134
150
|
.to_return(body: '{}', status: 200)
|
135
151
|
end
|
136
152
|
|
137
153
|
let(:app) { 4 }
|
138
|
-
let(:records) { records_data }
|
139
154
|
|
140
|
-
def
|
155
|
+
def hash_data
|
141
156
|
[
|
142
157
|
{ 'id' => 1, 'record' => { 'string_1' => { 'value' => 'abcdef' } } },
|
143
158
|
{ 'id' => 2, 'record' => { 'string_multi' => { 'value' => 'opqrstu' } } }
|
144
159
|
]
|
145
160
|
end
|
146
161
|
|
147
|
-
|
162
|
+
def record_data
|
163
|
+
[
|
164
|
+
{ id: 1, record: Kintone::Type::Record.new(string_1: 'abcdef') },
|
165
|
+
{ id: 2, record: Kintone::Type::Record.new(string_multi: 'opqrstu') }
|
166
|
+
]
|
167
|
+
end
|
168
|
+
|
169
|
+
where(:records, :result) do
|
170
|
+
[
|
171
|
+
[hash_data, {}],
|
172
|
+
[record_data, {}]
|
173
|
+
]
|
174
|
+
end
|
175
|
+
|
176
|
+
with_them do
|
177
|
+
it { expect(subject).to eq result }
|
178
|
+
end
|
148
179
|
end
|
149
180
|
end
|
150
181
|
|
@@ -155,8 +186,9 @@ describe Kintone::Command::Records do
|
|
155
186
|
before(:each) do
|
156
187
|
stub_request(
|
157
188
|
:delete,
|
158
|
-
'https://example.cybozu.com/k/v1/records.json
|
189
|
+
'https://example.cybozu.com/k/v1/records.json'
|
159
190
|
)
|
191
|
+
.with(body: { app: app, ids: ids }.to_json)
|
160
192
|
.to_return(body: '{}', status: 200)
|
161
193
|
end
|
162
194
|
|