cobot_client 0.6.7 → 0.7.0

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: edde06faa298e759ef9c0297bb630c6604cb514a
4
- data.tar.gz: 7eeaf64c025863c2dd3f3067d8a1cd5cffcae0f8
3
+ metadata.gz: 31d7c3f30c6c94506857a0a005f65976a494818a
4
+ data.tar.gz: 5625e0d5d2a99c7b747de56399ab92c6e23d2cba
5
5
  SHA512:
6
- metadata.gz: 869540276f24db43b81ab36861ae176b66b8ed129ad02931f7ccadb88e6b02035949c341427ab9d5d9fc02e67c1548259ea194487b7e7bed5f5015b4397b2610
7
- data.tar.gz: 0d486f2cf44234b69ed457bcc6580068670396a3690775e50db5ff73c3a37bbb7121e137029aec8af5aa81f3305144b22ee03f63df7e97503bf76aa198bf364c
6
+ metadata.gz: 0d713d3b32b0b7fbc8edae0f8b314793056bae5cae9dd19e3dda82d1513e9b2ae717dda8bc83581557c37fde63d68e2e362c03189afbeedc89454287a3ad3120
7
+ data.tar.gz: 75138f1446fd3fb6f732f0838145897d021e3129179cfc785bb78e8462413261e2da5fd4c00d9b376796301b99fdf9c75042c1a27015d35bb094f37d04fa254b
@@ -5,6 +5,10 @@ module CobotClient
5
5
  class ApiClient
6
6
  include UrlHelper
7
7
 
8
+ class << self
9
+ attr_accessor :user_agent
10
+ end
11
+
8
12
  def initialize(access_token)
9
13
  @access_token = access_token
10
14
  end
@@ -26,28 +30,31 @@ module CobotClient
26
30
  end
27
31
 
28
32
  def put(subdomain, path, params)
29
- JSON.parse RestClient.put(cobot_url(subdomain, "/api#{path}"), params, auth_headers).body,
33
+ JSON.parse RestClient.put(cobot_url(subdomain, "/api#{path}"), params, headers).body,
30
34
  symbolize_names: true
31
35
  end
32
36
 
33
37
  def delete(subdomain, path)
34
- RestClient.delete(cobot_url(subdomain, "/api#{path}"), auth_headers)
38
+ RestClient.delete(cobot_url(subdomain, "/api#{path}"), headers)
35
39
  end
36
40
 
37
41
  def post(subdomain, path, params)
38
- JSON.parse RestClient.post(cobot_url(subdomain, "/api#{path}"), params, auth_headers).body,
42
+ JSON.parse RestClient.post(cobot_url(subdomain, "/api#{path}"), params, headers).body,
39
43
  symbolize_names: true
40
44
  end
41
45
 
42
46
  def get(subdomain, path, params = {})
43
47
  JSON.parse(
44
- RestClient.get(cobot_url(subdomain, "/api#{path}", params: params), auth_headers).body,
48
+ RestClient.get(cobot_url(subdomain, "/api#{path}", params: params), headers).body,
45
49
  symbolize_names: true
46
50
  )
47
51
  end
48
52
 
49
- def auth_headers
50
- {'Authorization' => "Bearer #{@access_token}"}
53
+ def headers
54
+ {
55
+ 'Authorization' => "Bearer #{@access_token}",
56
+ 'User-Agent' => self.class.user_agent || "Cobot Client #{CobotClient::VERSION}"
57
+ }
51
58
  end
52
59
  end
53
60
  end
@@ -1,3 +1,3 @@
1
1
  module CobotClient
2
- VERSION = "0.6.7"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -2,18 +2,18 @@ require 'spec_helper'
2
2
 
3
3
  describe CobotClient::ApiClient do
4
4
  let(:api_client) { CobotClient::ApiClient.new('token-123') }
5
- let(:default_response) { stub(:default_response, body: '{}') }
5
+ let(:default_response) { double(:default_response, body: '{}') }
6
6
 
7
7
  context 'listing resources' do
8
8
  it 'calls rest client' do
9
9
  RestClient.should_receive(:get).with('https://co-up.cobot.me/api/resources',
10
- 'Authorization' => 'Bearer token-123') { default_response }
10
+ hash_including('Authorization' => 'Bearer token-123')) { default_response }
11
11
 
12
12
  api_client.get_resources 'co-up'
13
13
  end
14
14
 
15
15
  it 'returns the json' do
16
- RestClient.stub(:get) { stub(:response, body: [{id: 'resource-1'}].to_json) }
16
+ RestClient.stub(:get) { double(:response, body: [{id: 'resource-1'}].to_json) }
17
17
 
18
18
  resources = api_client.get_resources 'co-up'
19
19
 
@@ -25,13 +25,13 @@ describe CobotClient::ApiClient do
25
25
  it 'calls rest client' do
26
26
  RestClient.should_receive(:post).with('https://co-up.cobot.me/api/resources/res-1/bookings',
27
27
  {title: 'meeting'},
28
- 'Authorization' => 'Bearer token-123') { default_response }
28
+ hash_including('Authorization' => 'Bearer token-123')) { default_response }
29
29
 
30
30
  api_client.create_booking 'co-up', 'res-1', title: 'meeting'
31
31
  end
32
32
 
33
33
  it 'returns the json' do
34
- RestClient.stub(:post) { stub(:response, body: {title: 'meeting'}.to_json) }
34
+ RestClient.stub(:post) { double(:response, body: {title: 'meeting'}.to_json) }
35
35
 
36
36
  booking = api_client.create_booking 'co-up', 'res-1', title: 'meeting'
37
37
 
@@ -43,13 +43,13 @@ describe CobotClient::ApiClient do
43
43
  it 'calls rest client' do
44
44
  RestClient.should_receive(:put).with('https://co-up.cobot.me/api/bookings/booking-1',
45
45
  {title: 'meeting'},
46
- 'Authorization' => 'Bearer token-123') { default_response }
46
+ hash_including('Authorization' => 'Bearer token-123')) { default_response }
47
47
 
48
48
  api_client.update_booking 'co-up', 'booking-1', title: 'meeting'
49
49
  end
50
50
 
51
51
  it 'returns the json' do
52
- RestClient.stub(:put) { stub(:response, body: {title: 'meeting'}.to_json) }
52
+ RestClient.stub(:put) { double(:response, body: {title: 'meeting'}.to_json) }
53
53
 
54
54
  booking = api_client.update_booking 'co-up', 'booking-1', title: 'meeting'
55
55
 
@@ -60,7 +60,7 @@ describe CobotClient::ApiClient do
60
60
  context 'deleting a booking' do
61
61
  it 'calls rest client' do
62
62
  RestClient.should_receive(:delete).with('https://co-up.cobot.me/api/bookings/booking-1',
63
- 'Authorization' => 'Bearer token-123') { default_response }
63
+ hash_including('Authorization' => 'Bearer token-123')) { default_response }
64
64
 
65
65
  api_client.delete_booking 'co-up', 'booking-1'
66
66
  end
@@ -69,13 +69,22 @@ describe CobotClient::ApiClient do
69
69
  context '#get' do
70
70
  it 'calls rest client' do
71
71
  RestClient.should_receive(:get).with('https://co-up.cobot.me/api/invoices?from=2013-10-6&to=2013-10-12',
72
- 'Authorization' => 'Bearer token-123') { default_response }
72
+ hash_including('Authorization' => 'Bearer token-123')) { default_response }
73
73
 
74
74
  api_client.get 'co-up', '/invoices', {from: '2013-10-6', to: '2013-10-12'}
75
75
  end
76
76
 
77
+ it 'sends a user agent header' do
78
+ CobotClient::ApiClient.user_agent = 'test agent'
79
+
80
+ RestClient.should_receive(:get).with(anything,
81
+ hash_including('User-Agent' => 'test agent')) { default_response }
82
+
83
+ api_client.get 'co-up', '/invoices'
84
+ end
85
+
77
86
  it 'returns the response json' do
78
- RestClient.stub(:get) { stub(:response, body: [{number: 1}].to_json) }
87
+ RestClient.stub(:get) { double(:response, body: [{number: 1}].to_json) }
79
88
 
80
89
  expect(api_client.get('co-up', '/invoices')).to eql([{number: 1}])
81
90
  end
@@ -2,16 +2,16 @@ require 'spec_helper'
2
2
 
3
3
  describe CobotClient::NavigationLinkService, '#install_links' do
4
4
  let(:service) { CobotClient::NavigationLinkService.new(oauth_client, 'token-1', 'co-up') }
5
- let(:oauth_client) { stub(:oauth_client) }
5
+ let(:oauth_client) { double(:oauth_client) }
6
6
 
7
7
  before(:each) do
8
- @token = stub(:token).as_null_object
8
+ @token = double(:token).as_null_object
9
9
  OAuth2::AccessToken.stub(new: @token)
10
10
  end
11
11
 
12
12
  context 'when there are links already' do
13
13
  before(:each) do
14
- @token.stub(:get).with('https://co-up.cobot.me/api/navigation_links') do stub(:response, parsed: [
14
+ @token.stub(:get).with('https://co-up.cobot.me/api/navigation_links') do double(:response, parsed: [
15
15
  {label: 'test link'}])
16
16
  end
17
17
  end
@@ -19,30 +19,30 @@ describe CobotClient::NavigationLinkService, '#install_links' do
19
19
  it 'installs no links' do
20
20
  @token.should_not_receive(:post)
21
21
 
22
- service.install_links [stub(:link)]
22
+ service.install_links [double(:link)]
23
23
  end
24
24
 
25
25
  it 'returns the links' do
26
- expect(service.install_links([stub(:link)]).map(&:label)).to eql(['test link'])
26
+ expect(service.install_links([double(:link)]).map(&:label)).to eql(['test link'])
27
27
  end
28
28
  end
29
29
 
30
30
  context 'when there are no links installed' do
31
- let(:link) { stub(:link, section: 'admin/manage', label: 'test link', iframe_url: '/test') }
31
+ let(:link) { double(:link, section: 'admin/manage', label: 'test link', iframe_url: '/test') }
32
32
  before(:each) do
33
- @token.stub(:get).with('https://co-up.cobot.me/api/navigation_links') { stub(:response, parsed: []) }
33
+ @token.stub(:get).with('https://co-up.cobot.me/api/navigation_links') { double(:response, parsed: []) }
34
34
  end
35
35
 
36
36
  it 'installs the links' do
37
37
  @token.should_receive(:post).with('https://co-up.cobot.me/api/navigation_links', body: {
38
38
  section: 'admin/manage', label: 'test link', iframe_url: '/test'
39
- }) { stub(:response, status: 201, parsed: {}) }
39
+ }) { double(:response, status: 201, parsed: {}) }
40
40
 
41
41
  service.install_links [link]
42
42
  end
43
43
 
44
44
  it 'returns the links created' do
45
- response = stub(:response, status: 201, parsed: {label: 'test link'})
45
+ response = double(:response, status: 201, parsed: {label: 'test link'})
46
46
  @token.stub(:post) { response }
47
47
 
48
48
  expect(service.install_links([link]).map(&:label)).to eql(['test link'])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cobot_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.7
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Lang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-22 00:00:00.000000000 Z
11
+ date: 2014-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus