zendesk_api 1.3.7 → 1.3.8

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: a8b73e0b2eea3b49827b9c51e491844b3b1c8aaa
4
- data.tar.gz: 2fc0ef98f91e5e7b72233f60cd486975b099f830
3
+ metadata.gz: e9b5cc8be9234d6da4cd1b90cbdf4462bf7d1fa7
4
+ data.tar.gz: ae424a078cd9a89561d9acc2be8e31b979611139
5
5
  SHA512:
6
- metadata.gz: 7914bfee9601f839db64cd49a025f27f693ba0ffee305db7e259494da1664f8837c56e1434738b2be972283ebdf381b9dc11bd227d334faaa32d4d8cff18c89a
7
- data.tar.gz: 6a847c4d6996077966632fd9d07cf2568c93180246d2561707b61b617dca9161e0833d8baf402eaa82b8c62bedcd8359f4cd2b6c0bbc57f7b6019c69442c9d4f
6
+ metadata.gz: 9fc5f11d463221cb917757de68241566ea3ea972ccacb68a10d8e2ecd4f7a17101493af05de639f18cc04263fe02d292083bff7acbdfb60f21fb2c9712730083
7
+ data.tar.gz: 40bbdf4e474b4662f395deaf59c04ccd854c74d609da8af4187be052c30d79ebc54c3a0671efb15d22a02eb1e0a6d656b866c71d1e8072fecff6d8fc2ea18881
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zendesk_api (1.3.7)
4
+ zendesk_api (1.3.8)
5
5
  faraday (~> 0.9)
6
6
  hashie (>= 1.2)
7
7
  inflection
@@ -38,7 +38,7 @@ GEM
38
38
  erubis (2.7.0)
39
39
  faraday (0.9.0)
40
40
  multipart-post (>= 1.2, < 3)
41
- hashie (2.1.1)
41
+ hashie (3.0.0)
42
42
  hike (1.2.3)
43
43
  i18n (0.6.9)
44
44
  inflection (1.0.0)
@@ -25,7 +25,7 @@ module ZendeskAPI
25
25
  yield req if block_given?
26
26
  end
27
27
 
28
- handle_response
28
+ handle_response(@response)
29
29
 
30
30
  @attributes.clear_changes
31
31
  clear_associations
@@ -70,12 +70,6 @@ module ZendeskAPI
70
70
  end
71
71
  end
72
72
  end
73
-
74
- def handle_response
75
- if @response.body && @response.body[self.class.singular_resource_name]
76
- @attributes.replace @attributes.deep_merge(@response.body[self.class.singular_resource_name] || {})
77
- end
78
- end
79
73
  end
80
74
 
81
75
  module Read
@@ -102,7 +96,8 @@ module ZendeskAPI
102
96
  yield req if block_given?
103
97
  end
104
98
 
105
- new(client, response.body[singular_resource_name]).tap do |resource|
99
+ new(client).tap do |resource|
100
+ resource.handle_response(response)
106
101
  resource.set_includes(resource, includes, response.body)
107
102
  resource.attributes.clear_changes
108
103
  end
@@ -143,6 +143,12 @@ module ZendeskAPI
143
143
  class DataResource < Data
144
144
  attr_accessor :error, :error_message
145
145
  extend Verbs
146
+
147
+ def handle_response(response)
148
+ if response.body && response.body[self.class.singular_resource_name]
149
+ @attributes.replace(@attributes.deep_merge(response.body[self.class.singular_resource_name]))
150
+ end
151
+ end
146
152
  end
147
153
 
148
154
  # Represents a resource that can only GET
@@ -117,6 +117,9 @@ module ZendeskAPI
117
117
  has_many Tag, :extend => Tag::Update, :inline => :create
118
118
  end
119
119
 
120
+ class Brand < Resource
121
+ end
122
+
120
123
  class ForumSubscription < Resource
121
124
  has Forum
122
125
  has User
@@ -347,6 +350,7 @@ module ZendeskAPI
347
350
  has Group
348
351
  has :forum_topic, :class => Topic
349
352
  has Organization
353
+ has Brand
350
354
  has :related, :class => TicketRelated
351
355
 
352
356
  has Comment, :inline => true
@@ -628,8 +632,8 @@ module ZendeskAPI
628
632
  attributes.changes
629
633
  end
630
634
 
631
- def handle_response
632
- @attributes.replace(@response.body) if @response.body
635
+ def handle_response(response)
636
+ @attributes.replace(response.body) if response.body
633
637
  end
634
638
  end
635
639
 
@@ -645,16 +649,12 @@ module ZendeskAPI
645
649
  attributes.changes
646
650
  end
647
651
 
648
- def handle_response
649
- @attributes.replace(@response.body) if @response.body
652
+ def handle_response(response)
653
+ @attributes.replace(response.body) if response.body
650
654
  end
651
655
  end
652
656
 
653
- class App < DataResource
654
- include Create
655
- include Update
656
- include Destroy
657
-
657
+ class App < Resource
658
658
  def initialize(client, attributes = {})
659
659
  attributes[:upload_id] ||= nil
660
660
 
@@ -717,8 +717,8 @@ module ZendeskAPI
717
717
  attributes.changes
718
718
  end
719
719
 
720
- def handle_response
721
- @attributes.replace(@response.body) if @response.body
720
+ def handle_response(response)
721
+ @attributes.replace(response.body) if response.body
722
722
  end
723
723
  end
724
724
  end
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.3.7"
2
+ VERSION = "1.3.8"
3
3
  end
@@ -34,7 +34,7 @@ describe ZendeskAPI::Client do
34
34
  it "should handle valid url" do
35
35
  expect do
36
36
  ZendeskAPI::Client.new do |config|
37
- config.url = "https://example.zendesk.com/"
37
+ config.url = "https://example.zendesk.com/api/v2"
38
38
  end.to_not raise_error
39
39
  end
40
40
  end
@@ -42,7 +42,7 @@ describe ZendeskAPI::Client do
42
42
  context "basic_auth" do
43
43
  subject do
44
44
  ZendeskAPI::Client.new do |config|
45
- config.url = "https://example.zendesk.com"
45
+ config.url = "https://example.zendesk.com/api/v2"
46
46
  config.username = "hello"
47
47
  config.password = "token"
48
48
  end
@@ -60,7 +60,7 @@ describe ZendeskAPI::Client do
60
60
  context "access token" do
61
61
  subject do
62
62
  ZendeskAPI::Client.new do |config|
63
- config.url = "https://example.zendesk.com"
63
+ config.url = "https://example.zendesk.com/api/v2"
64
64
  config.access_token = "hello"
65
65
  end
66
66
  end
@@ -77,7 +77,7 @@ describe ZendeskAPI::Client do
77
77
  context "#token" do
78
78
  let(:client) do
79
79
  ZendeskAPI::Client.new do |config|
80
- config.url = "https://example.zendesk.com"
80
+ config.url = "https://example.zendesk.com/api/v2"
81
81
  config.username = username
82
82
  config.token = "token"
83
83
  end
@@ -116,7 +116,7 @@ describe ZendeskAPI::Client do
116
116
  context "#logger" do
117
117
  before(:each) do
118
118
  @client = ZendeskAPI::Client.new do |config|
119
- config.url = "https://example.zendesk.com/"
119
+ config.url = "https://example.zendesk.com/api/v2"
120
120
  config.logger = subject
121
121
  end
122
122
 
@@ -391,7 +391,7 @@ describe ZendeskAPI::Collection do
391
391
  end
392
392
 
393
393
  context "with a hash" do
394
- let(:object) { mock('ZendeskAPI::TestResource', :changes => [:xxx], :changed? => true, :destroyed? => false) }
394
+ let(:object) { double('ZendeskAPI::TestResource', :changes => [:xxx], :changed? => true, :destroyed? => false) }
395
395
 
396
396
  it "should call create with those options" do
397
397
  ZendeskAPI::TestResource.should_receive(:new).
@@ -425,7 +425,7 @@ describe ZendeskAPI::Collection do
425
425
 
426
426
  context "with everything else" do
427
427
  it "should pass to new, since this is how attachment handles it" do
428
- attachment = mock(:changes => [:xxx], :changed? => true, :destroyed? => false)
428
+ attachment = double(:changes => [:xxx], :changed? => true, :destroyed? => false)
429
429
  ZendeskAPI::TestResource.should_receive(:new).
430
430
  with(client, :id => "img.jpg", :association => instance_of(ZendeskAPI::Association)).
431
431
  and_return attachment
@@ -21,6 +21,30 @@ describe ZendeskAPI::ReadResource do
21
21
  }.to raise_error("No :id given")
22
22
  end
23
23
 
24
+ context "with overriden handle_response" do
25
+ subject do
26
+ Class.new(ZendeskAPI::TestResource) do
27
+ def self.singular_resource_name
28
+ 'hello'
29
+ end
30
+
31
+ def handle_response(response)
32
+ @attributes.replace(response.body)
33
+ end
34
+ end
35
+ end
36
+
37
+ before(:each) do
38
+ stub_json_request(:get, %r{hellos/#{id}}, json(:testing => 1))
39
+ end
40
+
41
+ it "should return instance of resource" do
42
+ object = subject.find(client, :id => id)
43
+ object.should be_instance_of(subject)
44
+ object.testing.should == 1
45
+ end
46
+ end
47
+
24
48
  context "with side loads" do
25
49
  before(:each) do
26
50
  stub_json_request(:get, %r{test_resources/#{id}\?include=nil_resource}, json(
@@ -496,10 +496,14 @@ describe ZendeskAPI::Resource do
496
496
 
497
497
  context "SingularTestResource" do
498
498
  context "#find" do
499
+ before do
500
+ stub_json_request(:get, %r{/singular_test_resource})
501
+ end
502
+
499
503
  it "should not require an id" do
500
504
  expect do
501
505
  ZendeskAPI::SingularTestResource.find(client)
502
- end.to_not raise_error(ArgumentError)
506
+ end.to_not raise_error
503
507
  end
504
508
  end
505
509
 
@@ -23,6 +23,8 @@ require File.join(File.dirname(__FILE__), '..', 'macros', 'resource_macros')
23
23
  require File.join(File.dirname(__FILE__), '..', 'fixtures', 'zendesk')
24
24
  require File.join(File.dirname(__FILE__), '..', 'fixtures', 'test_resources')
25
25
 
26
+ $credentials_warning = false
27
+
26
28
  # tests fail when this is included in a Module (someone else also defines client)
27
29
  def client
28
30
  credentials = File.join(File.dirname(__FILE__), '..', 'fixtures', 'credentials.yml')
@@ -60,8 +62,12 @@ def client
60
62
  config.allow_http = true
61
63
  end
62
64
  else
63
- puts "using default credentials: live specs will fail."
64
- puts "add your credentials to spec/fixtures/credentials.yml (see: spec/fixtures/credentials.yml.example)"
65
+ unless $credentials_warning
66
+ STDERR.puts "using default credentials: live specs will fail."
67
+ STDERR.puts "add your credentials to spec/fixtures/credentials.yml (see: spec/fixtures/credentials.yml.example)"
68
+ $credentials_warning = true
69
+ end
70
+
65
71
  config.username = "please.change"
66
72
  config.password = "me"
67
73
  config.url = "https://my.zendesk.com/api/v2"
@@ -82,5 +82,11 @@ module ZendeskAPI
82
82
  @organization ||= current_user.organization
83
83
  end
84
84
  end
85
+
86
+ def brand
87
+ VCR.use_cassette('valid_brand') do
88
+ @brand ||= current_user.brand
89
+ end
90
+ end
85
91
  end
86
92
  end
@@ -42,6 +42,7 @@ describe ZendeskAPI::AppInstallation do
42
42
 
43
43
  installations = client.app.installations
44
44
  VCR.use_cassette("app_install_fetch") { installations.fetch! }
45
+ VCR.use_cassette("app_install_find") { client.app.installations.find!(:id => install.id) }
45
46
 
46
47
  installations.should include(install)
47
48
 
@@ -22,6 +22,7 @@ describe ZendeskAPI::App do
22
22
 
23
23
  app.author_name.should == "Mr. Sprinkles"
24
24
 
25
+ VCR.use_cassette("app_find") { client.apps.find!(:id => app.id) }
25
26
  VCR.use_cassette("app_destroy") { app.destroy! }
26
27
  end
27
28
 
@@ -0,0 +1,12 @@
1
+ require 'core/spec_helper'
2
+
3
+ describe ZendeskAPI::Brand, :delete_after do
4
+ def valid_attributes
5
+ { :name => "Awesome-O" }
6
+ end
7
+
8
+ it_should_be_creatable
9
+ it_should_be_updatable :name
10
+ it_should_be_deletable
11
+ it_should_be_readable :brands, :create => true
12
+ end
@@ -21,6 +21,7 @@ describe ZendeskAPI::Ticket do
21
21
  it_should_be_readable user, :requested_tickets
22
22
  it_should_be_readable agent, :ccd_tickets
23
23
  it_should_be_readable organization, :tickets
24
+ it_should_be_readable brand, :tickets
24
25
 
25
26
  context "recent tickets" do
26
27
  before(:all) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Davidovitz
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-20 00:00:00.000000000 Z
12
+ date: 2014-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bump
@@ -274,6 +274,7 @@ files:
274
274
  - spec/live/audit_spec.rb
275
275
  - spec/live/automation_spec.rb
276
276
  - spec/live/bookmark_spec.rb
277
+ - spec/live/brand_spec.rb
277
278
  - spec/live/category_spec.rb
278
279
  - spec/live/collection_spec.rb
279
280
  - spec/live/custom_role_spec.rb
@@ -384,6 +385,7 @@ test_files:
384
385
  - spec/live/audit_spec.rb
385
386
  - spec/live/automation_spec.rb
386
387
  - spec/live/bookmark_spec.rb
388
+ - spec/live/brand_spec.rb
387
389
  - spec/live/category_spec.rb
388
390
  - spec/live/collection_spec.rb
389
391
  - spec/live/custom_role_spec.rb