kintone 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f270a6f3feb46411a8f630efced0f9240f6715a
4
- data.tar.gz: 67f676a7708f96f99be690bd60d9d4e9fe211c5f
3
+ metadata.gz: 802b3540fa57136b666301320c4a78bb5254084f
4
+ data.tar.gz: 101a717cecfbd0c2f2db6793aeb37444a7b71379
5
5
  SHA512:
6
- metadata.gz: 1f6193b7f58e9299c55fb5723fb0b519e838cc483f469b6ec7b458ea767a041d1fa8bb0471df30bfdd9a87dd411650d04847616a1f7559bf20e43ab759113d21
7
- data.tar.gz: 889ab4189f4ced1bc9c9a873bf52a7731f0dfcfe2dead65b713b6f45d0ba1aced9dad75de38a568e150d3cfd0b0ce4aba21313b9a712232c708d589c0cbadd54
6
+ metadata.gz: 85af72a3f02848b43e58286fc938858f488bf750da800a69133839b0ad92f5ee8165321420060df870dd9dd83cde7eaf5810d0f364d6ec4d044fd229e099ed8e
7
+ data.tar.gz: 7c58ccadb6289b95ba65fdc27d34869e2c7c320eb8c2ecbfe33853e78a55cf1803fb6870598d54743bfe553c7e29ff2dd7d12a0281f7039313194aeff329161a
data/README.md CHANGED
@@ -1,17 +1,15 @@
1
1
  # kintone
2
2
 
3
- クラウド型データベースサービス[kintone](https://kintone.cybozu.com/)REST APIを使用するためのgemです。
3
+ A Ruby gem for communicating with the [kintone](https://kintone.cybozu.com/us/) REST API
4
4
 
5
5
  ## Installation
6
6
 
7
7
  gem install kintone
8
8
 
9
- 又は、Gemfile
9
+ or execute `bundle install` command after you insert the following into Gemfile
10
10
 
11
11
  gem 'kintone'
12
12
 
13
- と書いて、`bundle install` コマンドを実行してください。
14
-
15
13
  ## Usage
16
14
 
17
15
  ```ruby
@@ -19,85 +17,105 @@ require 'kintone'
19
17
  api = Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu")
20
18
  ```
21
19
 
22
- ### 対応API
23
- - レコード取得
24
- - レコード登録
25
- - レコード更新
26
- - レコード削除
27
- - フォーム設計情報取得
20
+ ### Supported API
21
+ - Record retrieval
22
+ - Record register
23
+ - Record update
24
+ - Record delete
25
+ - Format retrieval
26
+ - Permissions
28
27
 
29
- ### レコード取得
28
+ ### Record retrieval
30
29
 
31
30
  ```ruby
32
- # レコード取得(レコード番号指定)
31
+ # Record retrieval(Assign by Record Number)
33
32
  app = 8; id = 100
34
33
  api.record.get(app, id) # => {"record" => {"record_id" => {"type" => "RECORD_NUMBER", "value" => "1"}}}
35
34
 
36
- # レコード取得(クエリで取得)
35
+ # Records retrieval(Assign by Conditions by Query Strings)
37
36
  app = 8; fields = ["record_id", "created_time", "dropdown"]
38
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"
39
38
  api.records.get(app, query, fields) # => {"records" => [{...}, ...]}
40
39
  ```
41
40
 
42
- ### レコード登録
41
+ ### Record register
43
42
 
44
43
  ```ruby
45
- # レコード登録(1件)
44
+ # Record register(single record)
46
45
  app = 7
47
46
  record = {"number" => {"value" => "123456"}}
48
47
  api.record.create(app, record) # => {"id" => "100"}
49
48
 
50
- # レコード登録(複数件)
49
+ # Records register(batch)
51
50
  app = 7
52
51
  records = [{"number" => {"value" => "123456"}}, {"number" => {"value" => "7890"}}]
53
52
  api.records.create(app, records) # => {"ids" => ["100", "101"]}
54
53
  ```
55
54
 
56
- ### レコード更新
55
+ ### Record update
57
56
 
58
57
  ```ruby
59
- # レコード更新(1件)
58
+ # Record update(single record)
60
59
  app = 4; id = 1
61
60
  record = {"string_multi" => {"value" => "changed!"}}
62
61
  api.record.update(app, id, record) # => {}
63
62
 
64
- # レコード更新(複数件)
63
+ # Records update(batch)
65
64
  app = 4
66
65
  records = [{"id" => 1, "string_multi" => {"value" => "abcdef"}}, {"id" => 2, "string_multi" => {"value" => "opqrstu"}}]
67
66
  api.records.update(app, records) # => {}
68
67
  ```
69
68
 
70
- ### レコード削除
69
+ ### Record delete
71
70
 
72
71
  ```ruby
73
72
  app = 8; ids = [100, 80]
74
73
  api.records.delete(app, ids) # => {}
75
74
  ```
76
75
 
77
- ### フォーム設計情報取得
76
+ ### Format retrieval
78
77
 
79
78
  ```ruby
80
79
  app = 4
81
80
  api.form.get(app) # => {"properties" => [{...}, ...]}
82
81
  ```
83
82
 
84
- ### 他APIへのリクエスト
83
+ ### Permissions
84
+
85
+ ```ruby
86
+ # App
87
+ app = 1
88
+ rights = [{"entity" => {"type" => "USER", "code" => "user1"}, "appEditable" => true, ...}, ...]
89
+ api.app_acl.update(app, rights) # => {}
90
+
91
+ # Records
92
+ id = 1
93
+ rights = [{"filterCond" => "...", "entities" => [{"entity" => {...}, "viewable" => false, ...}, ...]}, ...]
94
+ api.record_acl.update(id, rights) # => {}
95
+
96
+ #Fields
97
+ id = 1
98
+ rights = [{"code" => "Single_line_text_0", "entities" => [{"entity" => {...}, "accesibility" => "WRITE"}, ...]}, ...]
99
+ api.field_acl.update(id, rights) # => {}
100
+ ```
101
+
102
+ ### Other examples
85
103
 
86
104
  ```ruby
87
- # フォーム設計情報取得
105
+ # Format retrieval
88
106
  url = api.get_url("form")
89
107
  api.get(url, {"app" => 4}) # => {"properties" => [{...}, ...]}
90
108
 
91
- # 複数レコード登録
109
+ # Batch record register
92
110
  url = api.get_url("records")
93
111
  body = {"app" => 7, "records" => [{...}, ...]}
94
112
  api.post(url, body) # => {"ids" => ["100","101"]}
95
113
  ```
96
114
 
97
- ### ゲストスペースへのAPIリクエスト
115
+ ### Access to guest spaces
98
116
 
99
117
  ```ruby
100
118
  api.guest(1).record.get(8, 100)
101
119
  ```
102
120
 
103
- APIの仕様等については、[cybozu.com developers](https://developers.cybozu.com/)を見てください。
121
+ see also [kintone developers](https://developers.kintone.com/)
data/lib/kintone/api.rb CHANGED
@@ -5,6 +5,9 @@ require 'json'
5
5
  require 'kintone/command/record'
6
6
  require 'kintone/command/records'
7
7
  require 'kintone/command/form'
8
+ require 'kintone/command/app_acl'
9
+ require 'kintone/command/record_acl'
10
+ require 'kintone/command/field_acl'
8
11
  require 'kintone/api/guest'
9
12
 
10
13
  class Kintone::Api
@@ -12,9 +15,11 @@ class Kintone::Api
12
15
  COMMAND = "%s.json"
13
16
 
14
17
  def initialize(domain, user, password)
15
- @token = Base64.encode64("#{user}:#{password}")
18
+ token = Base64.encode64("#{user}:#{password}")
16
19
  @connection =
17
- Faraday.new(:url => "https://#{domain}", :ssl => false) do |builder|
20
+ Faraday.new(:url => "https://#{domain}",
21
+ :headers => {"X-Cybozu-Authorization" => token},
22
+ :ssl => false) do |builder|
18
23
  builder.adapter :net_http
19
24
  builder.request :url_encoded
20
25
  builder.response :json
@@ -35,7 +40,6 @@ class Kintone::Api
35
40
  @connection.get do |request|
36
41
  request.url url
37
42
  request.params = params
38
- request.headers = {"X-Cybozu-Authorization" => @token}
39
43
  end
40
44
  return response.body
41
45
  end
@@ -44,7 +48,7 @@ class Kintone::Api
44
48
  response =
45
49
  @connection.post do |request|
46
50
  request.url url
47
- request.headers = {"X-Cybozu-Authorization" => @token, "Content-Type" => "application/json"}
51
+ request.headers["Content-Type"] = "application/json"
48
52
  request.body = body.to_json
49
53
  end
50
54
  return response.body
@@ -54,7 +58,7 @@ class Kintone::Api
54
58
  response =
55
59
  @connection.put do |request|
56
60
  request.url url
57
- request.headers = {"X-Cybozu-Authorization" => @token, "Content-Type" => "application/json"}
61
+ request.headers["Content-Type"] = "application/json"
58
62
  request.body = body.to_json
59
63
  end
60
64
  return response.body
@@ -65,20 +69,31 @@ class Kintone::Api
65
69
  @connection.delete do |request|
66
70
  request.url url
67
71
  request.params = params
68
- request.headers = {"X-Cybozu-Authorization" => @token}
69
72
  end
70
73
  return response.body
71
74
  end
72
75
 
73
76
  def record
74
- Kintone::Command::Record.new(self)
77
+ return Kintone::Command::Record.new(self)
75
78
  end
76
79
 
77
80
  def records
78
- Kintone::Command::Records.new(self)
81
+ return Kintone::Command::Records.new(self)
79
82
  end
80
83
 
81
84
  def form
82
- Kintone::Command::Form.new(self)
85
+ return Kintone::Command::Form.new(self)
86
+ end
87
+
88
+ def app_acl
89
+ return Kintone::Command::AppAcl.new(self)
90
+ end
91
+
92
+ def record_acl
93
+ return Kintone::Command::RecordAcl.new(self)
94
+ end
95
+
96
+ def field_acl
97
+ return Kintone::Command::FieldAcl.new(self)
83
98
  end
84
99
  end
@@ -28,6 +28,18 @@ class Kintone::Api
28
28
  return Kintone::Command::Form.new(self)
29
29
  end
30
30
 
31
+ def app_acl
32
+ return Kintone::Command::AppAcl.new(self)
33
+ end
34
+
35
+ def record_acl
36
+ return Kintone::Command::RecordAcl.new(self)
37
+ end
38
+
39
+ def field_acl
40
+ return Kintone::Command::FieldAcl.new(self)
41
+ end
42
+
31
43
  def_delegators :@api, :get, :post, :put, :delete
32
44
  end
33
45
  end
@@ -0,0 +1,15 @@
1
+ require 'kintone/command'
2
+ require 'kintone/api'
3
+
4
+ class Kintone::Command::AppAcl
5
+ PATH = "app/acl"
6
+
7
+ def initialize(api)
8
+ @api = api
9
+ @url = @api.get_url(PATH)
10
+ end
11
+
12
+ def update(app, rights)
13
+ @api.put(@url, {:app => app, :rights => rights})
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require 'kintone/command'
2
+ require 'kintone/api'
3
+
4
+ class Kintone::Command::FieldAcl
5
+ PATH = "field/acl"
6
+
7
+ def initialize(api)
8
+ @api = api
9
+ @url = @api.get_url(PATH)
10
+ end
11
+
12
+ def update(id, rights)
13
+ @api.put(@url, {:id => id, :rights => rights})
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require 'kintone/command'
2
+ require 'kintone/api'
3
+
4
+ class Kintone::Command::RecordAcl
5
+ PATH = "record/acl"
6
+
7
+ def initialize(api)
8
+ @api = api
9
+ @url = @api.get_url(PATH)
10
+ end
11
+
12
+ def update(id, rights)
13
+ @api.put(@url, {:id => id, :rights => rights})
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module Kintone
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -15,4 +15,40 @@ describe Kintone::Api::Guest do
15
15
  it { expect(subject).to eq("/k/guest/1/v1/path.json") }
16
16
  end
17
17
  end
18
+
19
+ describe "#record" do
20
+ subject { target.record }
21
+
22
+ it { expect(subject).to be_a_kind_of(Kintone::Command::Record) }
23
+ end
24
+
25
+ describe "#records" do
26
+ subject { target.records }
27
+
28
+ it { expect(subject).to be_a_kind_of(Kintone::Command::Records) }
29
+ end
30
+
31
+ describe "#form" do
32
+ subject { target.form }
33
+
34
+ it { expect(subject).to be_a_kind_of(Kintone::Command::Form) }
35
+ end
36
+
37
+ describe "#app_acl" do
38
+ subject { target.app_acl }
39
+
40
+ it { expect(subject).to be_a_kind_of(Kintone::Command::AppAcl) }
41
+ end
42
+
43
+ describe "#record_acl" do
44
+ subject { target.record_acl }
45
+
46
+ it { expect(subject).to be_a_kind_of(Kintone::Command::RecordAcl) }
47
+ end
48
+
49
+ describe "#field_acl" do
50
+ subject { target.field_acl }
51
+
52
+ it { expect(subject).to be_a_kind_of(Kintone::Command::FieldAcl) }
53
+ end
18
54
  end
data/spec/api_spec.rb CHANGED
@@ -127,4 +127,22 @@ describe Kintone::Api do
127
127
 
128
128
  it { expect(subject).to be_a_kind_of(Kintone::Command::Form) }
129
129
  end
130
+
131
+ describe "#app_acl" do
132
+ subject { target.app_acl }
133
+
134
+ it { expect(subject).to be_a_kind_of(Kintone::Command::AppAcl) }
135
+ end
136
+
137
+ describe "#record_acl" do
138
+ subject { target.record_acl }
139
+
140
+ it { expect(subject).to be_a_kind_of(Kintone::Command::RecordAcl) }
141
+ end
142
+
143
+ describe "#field_acl" do
144
+ subject { target.field_acl }
145
+
146
+ it { expect(subject).to be_a_kind_of(Kintone::Command::FieldAcl) }
147
+ end
130
148
  end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'kintone/command/app_acl'
3
+ require 'kintone/api'
4
+
5
+ describe Kintone::Command::AppAcl do
6
+ let(:target) { Kintone::Command::AppAcl.new(api) }
7
+ let(:api) { Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu") }
8
+
9
+ describe "#update" do
10
+ subject { target.update(app, rights) }
11
+
12
+ context "" do
13
+ before(:each) do
14
+ stub_request(
15
+ :put,
16
+ "https://example.cybozu.com/k/v1/app/acl.json"
17
+ ).
18
+ with(:body => {"app" => 1, "rights" => {"p1" => "abc", "p2" => "def"}}.to_json).
19
+ to_return(:body => "{}", :status => 200)
20
+ end
21
+
22
+ let(:app) { 1 }
23
+ let(:rights) { {"p1" => "abc", "p2" => "def"} }
24
+
25
+ it { expect(subject).to eq({}) }
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'kintone/command/field_acl'
3
+ require 'kintone/api'
4
+
5
+ describe Kintone::Command::FieldAcl do
6
+ let(:target) { Kintone::Command::FieldAcl.new(api) }
7
+ let(:api) { Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu") }
8
+
9
+ describe "#update" do
10
+ subject { target.update(id, rights) }
11
+
12
+ context "" do
13
+ before(:each) do
14
+ stub_request(
15
+ :put,
16
+ "https://example.cybozu.com/k/v1/field/acl.json"
17
+ ).
18
+ with(:body => {"id" => 1, "rights" => {"p1" => "abc", "p2" => "def"}}.to_json).
19
+ to_return(:body => "{}", :status => 200)
20
+ end
21
+
22
+ let(:id) { 1 }
23
+ let(:rights) { {"p1" => "abc", "p2" => "def"} }
24
+
25
+ it { expect(subject).to eq({}) }
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'kintone/command/record_acl'
3
+ require 'kintone/api'
4
+
5
+ describe Kintone::Command::RecordAcl do
6
+ let(:target) { Kintone::Command::RecordAcl.new(api) }
7
+ let(:api) { Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu") }
8
+
9
+ describe "#update" do
10
+ subject { target.update(id, rights) }
11
+
12
+ context "" do
13
+ before(:each) do
14
+ stub_request(
15
+ :put,
16
+ "https://example.cybozu.com/k/v1/record/acl.json"
17
+ ).
18
+ with(:body => {"id" => 1, "rights" => {"p1" => "abc", "p2" => "def"}}.to_json).
19
+ to_return(:body => "{}", :status => 200)
20
+ end
21
+
22
+ let(:id) { 1 }
23
+ let(:rights) { {"p1" => "abc", "p2" => "def"} }
24
+
25
+ it { expect(subject).to eq({}) }
26
+ end
27
+ end
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kintone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rikiya Kawakami
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-13 00:00:00.000000000 Z
11
+ date: 2014-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -112,13 +112,19 @@ files:
112
112
  - lib/kintone/api.rb
113
113
  - lib/kintone/api/guest.rb
114
114
  - lib/kintone/command.rb
115
+ - lib/kintone/command/app_acl.rb
116
+ - lib/kintone/command/field_acl.rb
115
117
  - lib/kintone/command/form.rb
116
118
  - lib/kintone/command/record.rb
119
+ - lib/kintone/command/record_acl.rb
117
120
  - lib/kintone/command/records.rb
118
121
  - lib/kintone/version.rb
119
122
  - spec/api/guest_spec.rb
120
123
  - spec/api_spec.rb
124
+ - spec/command/app_acl_spec.rb
125
+ - spec/command/field_acl_spec.rb
121
126
  - spec/command/form_spec.rb
127
+ - spec/command/record_acl_spec.rb
122
128
  - spec/command/record_spec.rb
123
129
  - spec/command/records_spec.rb
124
130
  - spec/spec_helper.rb
@@ -149,7 +155,10 @@ summary: kintone API client for Ruby.
149
155
  test_files:
150
156
  - spec/api/guest_spec.rb
151
157
  - spec/api_spec.rb
158
+ - spec/command/app_acl_spec.rb
159
+ - spec/command/field_acl_spec.rb
152
160
  - spec/command/form_spec.rb
161
+ - spec/command/record_acl_spec.rb
153
162
  - spec/command/record_spec.rb
154
163
  - spec/command/records_spec.rb
155
164
  - spec/spec_helper.rb