kintone 0.0.2 → 0.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 548e13d447b105ddea94cd11ffc2ca2b882d1a89
4
- data.tar.gz: 8c7940cdf780cdc5980e9920326a7307d820976e
3
+ metadata.gz: 5f270a6f3feb46411a8f630efced0f9240f6715a
4
+ data.tar.gz: 67f676a7708f96f99be690bd60d9d4e9fe211c5f
5
5
  SHA512:
6
- metadata.gz: 9f28461efc3dbe61367ee5f178e9585eda7d450c6e56fda8b523b7c3802dbd09d2871d2e34985a6c4d305f956fa6866a48e026f2496b817f4f4a6ed04fd74920
7
- data.tar.gz: 2fbf9eb1eb0c53e0247567cf72ccb5355a4f17a4b4b0ba8b3d47dd39b883d971ca2d73656685ca09fbcab1f8ef133c90e360c2de6d985354c5c77aff9c0306a9
6
+ metadata.gz: 1f6193b7f58e9299c55fb5723fb0b519e838cc483f469b6ec7b458ea767a041d1fa8bb0471df30bfdd9a87dd411650d04847616a1f7559bf20e43ab759113d21
7
+ data.tar.gz: 889ab4189f4ced1bc9c9a873bf52a7731f0dfcfe2dead65b713b6f45d0ba1aced9dad75de38a568e150d3cfd0b0ce4aba21313b9a712232c708d589c0cbadd54
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # kintone
2
2
 
3
- クラウド型データベースサービスkintone( https://kintone.cybozu.com/ )のREST APIを使用するためのgemです。
3
+ クラウド型データベースサービス[kintone](https://kintone.cybozu.com/)のREST APIを使用するためのgemです。
4
4
 
5
5
  ## Installation
6
6
 
@@ -24,6 +24,7 @@ api = Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu")
24
24
  - レコード登録
25
25
  - レコード更新
26
26
  - レコード削除
27
+ - フォーム設計情報取得
27
28
 
28
29
  ### レコード取得
29
30
 
@@ -73,14 +74,24 @@ app = 8; ids = [100, 80]
73
74
  api.records.delete(app, ids) # => {}
74
75
  ```
75
76
 
77
+ ### フォーム設計情報取得
78
+
79
+ ```ruby
80
+ app = 4
81
+ api.form.get(app) # => {"properties" => [{...}, ...]}
82
+ ```
83
+
76
84
  ### 他APIへのリクエスト
77
85
 
78
86
  ```ruby
79
87
  # フォーム設計情報取得
80
- api.get("form.json", {"app" => 4}) # => {"properties" => [{...}, ...]}
88
+ url = api.get_url("form")
89
+ api.get(url, {"app" => 4}) # => {"properties" => [{...}, ...]}
90
+
81
91
  # 複数レコード登録
92
+ url = api.get_url("records")
82
93
  body = {"app" => 7, "records" => [{...}, ...]}
83
- api.post("records.json", body) # => {"ids" => ["100","101"]}
94
+ api.post(url, body) # => {"ids" => ["100","101"]}
84
95
  ```
85
96
 
86
97
  ### ゲストスペースへのAPIリクエスト
@@ -89,4 +100,4 @@ api.post("records.json", body) # => {"ids" => ["100","101"]}
89
100
  api.guest(1).record.get(8, 100)
90
101
  ```
91
102
 
92
- APIの仕様等については、cybozu.com developers( https://developers.cybozu.com/ )を見てください。
103
+ APIの仕様等については、[cybozu.com developers](https://developers.cybozu.com/)を見てください。
data/lib/kintone/api.rb CHANGED
@@ -4,14 +4,15 @@ require 'base64'
4
4
  require 'json'
5
5
  require 'kintone/command/record'
6
6
  require 'kintone/command/records'
7
+ require 'kintone/command/form'
8
+ require 'kintone/api/guest'
7
9
 
8
10
  class Kintone::Api
9
- BASE_PATH = "/k%s/v1/"
10
- SPACE_PATH = "/guest/%s"
11
+ BASE_PATH = "/k/v1/"
12
+ COMMAND = "%s.json"
11
13
 
12
14
  def initialize(domain, user, password)
13
15
  @token = Base64.encode64("#{user}:#{password}")
14
- @base_path = BASE_PATH % nil
15
16
  @connection =
16
17
  Faraday.new(:url => "https://#{domain}", :ssl => false) do |builder|
17
18
  builder.adapter :net_http
@@ -21,14 +22,15 @@ class Kintone::Api
21
22
  end
22
23
  end
23
24
 
24
- def guest(space)
25
- space_path = SPACE_PATH % space if space.to_s.match(/^[1-9][0-9]*$/)
26
- @base_path = BASE_PATH % space_path
27
- return self
25
+ def get_url(command)
26
+ return BASE_PATH + (COMMAND % command)
28
27
  end
29
28
 
30
- def get(path, params=nil)
31
- url = @base_path + path
29
+ def guest(space_id)
30
+ return Kintone::Api::Guest.new(space_id, self)
31
+ end
32
+
33
+ def get(url, params=nil)
32
34
  response =
33
35
  @connection.get do |request|
34
36
  request.url url
@@ -38,8 +40,7 @@ class Kintone::Api
38
40
  return response.body
39
41
  end
40
42
 
41
- def post(path, body)
42
- url = @base_path + path
43
+ def post(url, body)
43
44
  response =
44
45
  @connection.post do |request|
45
46
  request.url url
@@ -49,8 +50,7 @@ class Kintone::Api
49
50
  return response.body
50
51
  end
51
52
 
52
- def put(path, body)
53
- url = @base_path + path
53
+ def put(url, body)
54
54
  response =
55
55
  @connection.put do |request|
56
56
  request.url url
@@ -60,8 +60,7 @@ class Kintone::Api
60
60
  return response.body
61
61
  end
62
62
 
63
- def delete(path, params=nil)
64
- url = @base_path + path
63
+ def delete(url, params=nil)
65
64
  response =
66
65
  @connection.delete do |request|
67
66
  request.url url
@@ -78,4 +77,8 @@ class Kintone::Api
78
77
  def records
79
78
  Kintone::Command::Records.new(self)
80
79
  end
80
+
81
+ def form
82
+ Kintone::Command::Form.new(self)
83
+ end
81
84
  end
@@ -0,0 +1,33 @@
1
+ require 'forwardable'
2
+ require 'kintone/api'
3
+
4
+ class Kintone::Api
5
+ class Guest
6
+ extend Forwardable
7
+
8
+ GUEST_PATH = "/k/guest/%s/v1/"
9
+
10
+ def initialize(space_id, api)
11
+ @api = api
12
+ @guest_path = GUEST_PATH % space_id
13
+ end
14
+
15
+ def get_url(command)
16
+ return @guest_path + (COMMAND % command)
17
+ end
18
+
19
+ def record
20
+ return Kintone::Command::Record.new(self)
21
+ end
22
+
23
+ def records
24
+ return Kintone::Command::Records.new(self)
25
+ end
26
+
27
+ def form
28
+ return Kintone::Command::Form.new(self)
29
+ end
30
+
31
+ def_delegators :@api, :get, :post, :put, :delete
32
+ end
33
+ end
@@ -0,0 +1,15 @@
1
+ require 'kintone/command'
2
+ require 'kintone/api'
3
+
4
+ class Kintone::Command::Form
5
+ PATH = "form"
6
+
7
+ def initialize(api)
8
+ @api = api
9
+ @url = @api.get_url(PATH)
10
+ end
11
+
12
+ def get(app)
13
+ @api.get(@url, {:app => app})
14
+ end
15
+ end
@@ -2,21 +2,22 @@ require 'kintone/command'
2
2
  require 'kintone/api'
3
3
 
4
4
  class Kintone::Command::Record
5
- PATH = "record.json"
5
+ PATH = "record"
6
6
 
7
7
  def initialize(api)
8
8
  @api = api
9
+ @url = @api.get_url(PATH)
9
10
  end
10
11
 
11
12
  def get(app, id)
12
- @api.get(PATH, {:app => app, :id => id})
13
+ @api.get(@url, {:app => app, :id => id})
13
14
  end
14
15
 
15
16
  def create(app, record)
16
- @api.post(PATH, {:app => app, :record => record})
17
+ @api.post(@url, {:app => app, :record => record})
17
18
  end
18
19
 
19
20
  def update(app, id, record)
20
- @api.put(PATH, {:app => app, :id => id, :record => record})
21
+ @api.put(@url, {:app => app, :id => id, :record => record})
21
22
  end
22
23
  end
@@ -2,29 +2,30 @@ require 'kintone/command'
2
2
  require 'kintone/api'
3
3
 
4
4
  class Kintone::Command::Records
5
- PATH = "records.json"
5
+ PATH = "records"
6
6
 
7
7
  def initialize(api)
8
8
  @api = api
9
+ @url = @api.get_url(PATH)
9
10
  end
10
11
 
11
12
  def get(app, query, fields)
12
13
  params = {:app => app, :query => query}
13
14
  fields.each_with_index {|v, i| params["fields[#{i}]"] = v}
14
- return @api.get(PATH, params)
15
+ return @api.get(@url, params)
15
16
  end
16
17
 
17
18
  def create(app, records)
18
- return @api.post(PATH, {:app => app, :records => records})
19
+ return @api.post(@url, {:app => app, :records => records})
19
20
  end
20
21
 
21
22
  def update(app, records)
22
- return @api.put(PATH, {:app => app, :records => records})
23
+ return @api.put(@url, {:app => app, :records => records})
23
24
  end
24
25
 
25
26
  def delete(app, ids)
26
27
  params = {:app => app}
27
28
  ids.each_with_index {|v, i| params["ids[#{i}]"] = v}
28
- return @api.delete(PATH, params)
29
+ return @api.delete(@url, params)
29
30
  end
30
31
  end
@@ -1,3 +1,3 @@
1
1
  module Kintone
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ require 'kintone/api/guest'
3
+ require 'kintone/api'
4
+
5
+ describe Kintone::Api::Guest do
6
+ let(:target) { Kintone::Api::Guest.new(space, api) }
7
+ let(:space) { 1 }
8
+ let(:api) { Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu") }
9
+
10
+ describe "#get_url" do
11
+ subject { target.get_url(command) }
12
+ context "" do
13
+ let(:command) { "path" }
14
+
15
+ it { expect(subject).to eq("/k/guest/1/v1/path.json") }
16
+ end
17
+ end
18
+ end
data/spec/api_spec.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'spec_helper'
2
2
  require 'kintone/api'
3
+ require 'kintone/api/guest'
3
4
  require 'kintone/command/record'
4
5
  require 'kintone/command/records'
5
6
 
@@ -9,26 +10,33 @@ describe Kintone::Api do
9
10
  let(:user) { "Administrator" }
10
11
  let(:password) { "cybozu" }
11
12
 
12
- describe "guest" do
13
- before(:each) do
14
- subject
13
+ describe "#get_url" do
14
+ subject { target.get_url(command) }
15
+
16
+ context "" do
17
+ let(:command) { "path" }
18
+ it { expect(subject).to eq("/k/v1/path.json") }
15
19
  end
20
+ end
16
21
 
22
+ describe "#guest" do
17
23
  subject { target.guest(space) }
18
24
 
19
25
  context "引数が数値の1の時" do
20
26
  let(:space) { 1 }
21
- it { expect(target.instance_variable_get(:@base_path)).to eq("/k/guest/1/v1/") }
27
+
28
+ it { expect(subject).to be_a_kind_of(Kintone::Api::Guest) }
29
+ it { expect(subject.instance_variable_get(:@guest_path)).to eq("/k/guest/1/v1/") }
22
30
  end
23
31
 
24
32
  context "引数がnilの時" do
25
33
  let(:space) { nil }
26
- it { expect(target.instance_variable_get(:@base_path)).to eq("/k/v1/") }
34
+ xit { expect(subject.instance_variable_get(:@guest_path)).to eq("/k/guest//v1/") }
27
35
  end
28
36
 
29
37
  context "引数に数字以外の文字が含まれる時" do
30
38
  let(:space) { "2.1" }
31
- it { expect(target.instance_variable_get(:@base_path)).to eq("/k/v1/") }
39
+ xit { expect(subject.instance_variable_get(:@guest_path)).to eq("/k/guest//v1/") }
32
40
  end
33
41
  end
34
42
 
@@ -43,7 +51,7 @@ describe Kintone::Api do
43
51
  end
44
52
 
45
53
  subject { target.get(path, params) }
46
- let(:path) { "path" }
54
+ let(:path) { "/k/v1/path" }
47
55
  let(:params) { {"p1" => "abc", "p2" => "def"} }
48
56
 
49
57
  it { expect(subject).to eq({"abc" => "def"}) }
@@ -61,7 +69,7 @@ describe Kintone::Api do
61
69
  end
62
70
 
63
71
  subject { target.post(path, body) }
64
- let(:path) { "path" }
72
+ let(:path) { "/k/v1/path" }
65
73
  let(:body) { {"p1" => "abc", "p2" => "def"} }
66
74
 
67
75
  it { expect(subject).to eq({"abc" => "def"}) }
@@ -79,7 +87,7 @@ describe Kintone::Api do
79
87
  end
80
88
 
81
89
  subject { target.put(path, body) }
82
- let(:path) { "path" }
90
+ let(:path) { "/k/v1/path" }
83
91
  let(:body) { {"p1" => "abc", "p2" => "def"} }
84
92
 
85
93
  it { expect(subject).to eq({"abc" => "def"}) }
@@ -96,7 +104,7 @@ describe Kintone::Api do
96
104
  end
97
105
 
98
106
  subject { target.delete(path, params) }
99
- let(:path) { "path" }
107
+ let(:path) { "/k/v1/path" }
100
108
  let(:params) { {"p1" => "abc", "p2" => "def"} }
101
109
 
102
110
  it { expect(subject).to eq({"abc" => "def"}) }
@@ -113,4 +121,10 @@ describe Kintone::Api do
113
121
 
114
122
  it { expect(subject).to be_a_kind_of(Kintone::Command::Records) }
115
123
  end
124
+
125
+ describe "#form" do
126
+ subject { target.form }
127
+
128
+ it { expect(subject).to be_a_kind_of(Kintone::Command::Form) }
129
+ end
116
130
  end
@@ -0,0 +1,25 @@
1
+ require 'kintone/command/form'
2
+ require 'kintone/api'
3
+
4
+ describe Kintone::Command::Form do
5
+ let(:target) { Kintone::Command::Form.new(api) }
6
+ let(:api) { Kintone::Api.new("example.cybozu.com", "Administrator", "cybozu") }
7
+
8
+ describe "#get" do
9
+ subject { target.get(app) }
10
+
11
+ context "" do
12
+ before(:each) do
13
+ stub_request(
14
+ :get,
15
+ "https://example.cybozu.com/k/v1/form.json?app=4"
16
+ ).
17
+ to_return(:body => "{\"result\":\"ok\"}", :status => 200)
18
+ end
19
+
20
+ let(:app) { 4 }
21
+
22
+ it { expect(subject).to eq({"result" => "ok"})}
23
+ end
24
+ end
25
+ 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.2
4
+ version: 0.0.3
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-09 00:00:00.000000000 Z
11
+ date: 2014-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -110,11 +110,15 @@ files:
110
110
  - kintone.gemspec
111
111
  - lib/kintone.rb
112
112
  - lib/kintone/api.rb
113
+ - lib/kintone/api/guest.rb
113
114
  - lib/kintone/command.rb
115
+ - lib/kintone/command/form.rb
114
116
  - lib/kintone/command/record.rb
115
117
  - lib/kintone/command/records.rb
116
118
  - lib/kintone/version.rb
119
+ - spec/api/guest_spec.rb
117
120
  - spec/api_spec.rb
121
+ - spec/command/form_spec.rb
118
122
  - spec/command/record_spec.rb
119
123
  - spec/command/records_spec.rb
120
124
  - spec/spec_helper.rb
@@ -143,7 +147,9 @@ signing_key:
143
147
  specification_version: 4
144
148
  summary: kintone API client for Ruby.
145
149
  test_files:
150
+ - spec/api/guest_spec.rb
146
151
  - spec/api_spec.rb
152
+ - spec/command/form_spec.rb
147
153
  - spec/command/record_spec.rb
148
154
  - spec/command/records_spec.rb
149
155
  - spec/spec_helper.rb