zendesk_api 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -7,7 +7,7 @@ GIT
7
7
  PATH
8
8
  remote: .
9
9
  specs:
10
- zendesk_api (1.0.2)
10
+ zendesk_api (1.0.3)
11
11
  faraday (>= 0.8.0)
12
12
  faraday_middleware (>= 0.8.7)
13
13
  hashie (>= 1.2)
@@ -1,7 +1,7 @@
1
1
  require 'zendesk_api/helpers'
2
2
 
3
3
  module ZendeskAPI
4
- # Represents an association between two resources
4
+ # Represents an association between two resources
5
5
  # @private
6
6
  class Association
7
7
  # @return [Hash] Options passed into the association
@@ -10,7 +10,7 @@ module ZendeskAPI
10
10
  # Options to pass in
11
11
  # * class - Required
12
12
  # * parent - Parent instance
13
- # * path - Optional path instead of resource name
13
+ # * path - Optional path instead of resource name
14
14
  def initialize(options = {})
15
15
  @options = Hashie::Mash.new(options)
16
16
  end
@@ -32,7 +32,7 @@ module ZendeskAPI
32
32
  instance = args.first
33
33
 
34
34
  namespace = @options[:class].to_s.split("::")
35
- namespace.delete("ZendeskAPI")
35
+ %w(ZendeskAPI Voice).each { |ns| namespace.delete(ns) }
36
36
  has_parent = namespace.size > 1 || (options[:with_parent] && @options.parent)
37
37
 
38
38
  if has_parent
@@ -15,6 +15,7 @@ require 'zendesk_api/middleware/response/gzip'
15
15
  require 'zendesk_api/middleware/response/parse_iso_dates'
16
16
  require 'zendesk_api/middleware/response/raise_error'
17
17
  require 'zendesk_api/middleware/response/logger'
18
+ require 'zendesk_api/delegator'
18
19
 
19
20
  module ZendeskAPI
20
21
  # The top-level class that handles configuration and connection to the Zendesk API.
@@ -33,11 +34,13 @@ module ZendeskAPI
33
34
  options = args.last.is_a?(Hash) ? args.pop : {}
34
35
 
35
36
  @resource_cache[method] ||= { :class => nil, :cache => ZendeskAPI::LRUCache.new }
36
-
37
37
  if !options.delete(:reload) && (cached = @resource_cache[method][:cache].read(options.hash))
38
38
  cached
39
39
  else
40
- @resource_cache[method][:class] ||= ZendeskAPI.const_get(ZendeskAPI::Helpers.modulize_string(Inflection.singular(method)))
40
+ klass_as_const = ZendeskAPI::Helpers.modulize_string(Inflection.singular(method))
41
+ klass = class_from_namespace(klass_as_const)
42
+
43
+ @resource_cache[method][:class] ||= klass
41
44
  @resource_cache[method][:cache].write(options.hash, ZendeskAPI::Collection.new(self, @resource_cache[method][:class], options))
42
45
  end
43
46
  end
@@ -109,6 +112,10 @@ module ZendeskAPI
109
112
  end
110
113
  end
111
114
 
115
+ def voice
116
+ Delegator.new(self)
117
+ end
118
+
112
119
  protected
113
120
 
114
121
  # Called by {#connection} to build a connection. Can be overwritten in a
@@ -158,6 +165,16 @@ module ZendeskAPI
158
165
 
159
166
  private
160
167
 
168
+ def class_from_namespace(klass_as_const)
169
+ [ZendeskAPI, ZendeskAPI::Voice].each do |ns|
170
+ if ns.const_defined?(klass_as_const)
171
+ return ns.const_get(klass_as_const)
172
+ end
173
+ end
174
+
175
+ nil
176
+ end
177
+
161
178
  def check_url
162
179
  if !config.allow_http && config.url !~ /^https/
163
180
  raise ArgumentError, "zendesk_api is ssl only; url must begin with https://"
@@ -0,0 +1,4 @@
1
+ module ZendeskAPI
2
+ class Delegator < SimpleDelegator; end
3
+ end
4
+
@@ -45,7 +45,7 @@ module ZendeskAPI
45
45
  def _save(method = :save)
46
46
  return self unless @resources
47
47
 
48
- client.connection.post(path) do |req|
48
+ @client.connection.post(path) do |req|
49
49
  req.body = { :tags => @resources.map(&:id) }
50
50
  end
51
51
 
@@ -466,4 +466,10 @@ module ZendeskAPI
466
466
  end
467
467
 
468
468
  class Target < Resource; end
469
+
470
+ module Voice
471
+ class PhoneNumber < Resource
472
+ namespace "channels/voice"
473
+ end
474
+ end
469
475
  end
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -19,7 +19,7 @@ describe ZendeskAPI::Client do
19
19
  ZendeskAPI::Client.new do |config|
20
20
  config.url = "http://www.google.com"
21
21
  end
22
- end.to raise_error(ArgumentError)
22
+ end.to raise_error(ArgumentError)
23
23
  end
24
24
 
25
25
  it "should not raise an exception when url isn't ssl and allow_http is set to true" do
@@ -115,7 +115,7 @@ describe ZendeskAPI::Client do
115
115
 
116
116
  context "#logger" do
117
117
  before(:each) do
118
- @client = ZendeskAPI::Client.new do |config|
118
+ @client = ZendeskAPI::Client.new do |config|
119
119
  config.url = "https://example.zendesk.com/"
120
120
  config.logger = subject
121
121
  end
@@ -232,4 +232,15 @@ describe ZendeskAPI::Client do
232
232
  client.connection.should == "FOO"
233
233
  client.connection.object_id.should == client.connection.object_id # it's cached
234
234
  end
235
+
236
+ context ZendeskAPI::Voice do
237
+ it "defers to voice delegator" do
238
+ ZendeskAPI::Client.any_instance.should_receive(:phone_numbers).once
239
+ subject.voice.phone_numbers
240
+ end
241
+
242
+ it "manages namespace correctly" do
243
+ ZendeskAPI::Voice::PhoneNumber.new(subject, {}).path.should match(/channels\/voice\/phone_numbers/)
244
+ end
245
+ end
235
246
  end
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"get","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/61","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 08:52:34 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["201"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["154"],"Etag":["\"1e0d292a3112a5f5cfd02f8ed20ae71c\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjYxLCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDA4OjUyOjMzWiIsIm51bWJlciI6Iisx\nNzU0MzAwMjE5NCIsIm5hbWUiOiIrMSAoNzU0KSAzMDAtMjE5NCIsImRpc3Bs\nYXlfbnVtYmVyIjoiKzEgKDc1NCkgMzAwLTIxOTQiLCJsb2NhdGlvbiI6bnVs\nbCwidG9sbF9mcmVlIjpmYWxzZX19\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 08:52:34 GMT"},{"request":{"method":"get","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/47","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:00:22 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["238"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["161"],"Etag":["\"7aa1a2e5a56a8e87db32554a20f3c1ee\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjQ3LCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDE1OjAwOjIxWiIsIm51bWJlciI6Iisx\nNDg0NDk4NjU5MCIsIm5hbWUiOiIrMSAoNDg0KSA0OTgtNjU5MCIsImRpc3Bs\nYXlfbnVtYmVyIjoiKzEgKDQ4NCkgNDk4LTY1OTAiLCJsb2NhdGlvbiI6bnVs\nbCwidG9sbF9mcmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVj\nb3JkZWQiOnRydWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:00:22 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"delete","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/62","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 16:25:11 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Length":["1"],"Connection":["keep-alive"],"Status":["200 OK"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["230"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"IA==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 16:25:11 GMT"},{"request":{"method":"get","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/62","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":404,"message":"Not Found"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 16:25:13 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["52"],"Connection":["keep-alive"],"Status":["404 Not Found"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJlcnJvciI6IlJlY29yZE5vdEZvdW5kIiwiZGVzY3JpcHRpb24iOiJOb3Qg\nZm91bmQifQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 16:25:13 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"put","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/61","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnt9fQ==\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":400,"message":"Bad Request"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 13:54:35 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Length":["40"],"Connection":["keep-alive"],"Status":["400 Bad Request"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"UmVxdWlyZWQgcGFyYW1ldGVyIG1pc3Npbmc6IHBob25lX251bWJlcg==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 13:54:35 GMT"},{"request":{"method":"get","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/61","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 13:54:36 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["229"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["1435"],"Etag":["\"6b164a12d8618b3cf9050dd43cf4e10e\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjYxLCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDA4OjUyOjMzWiIsIm51bWJlciI6Iisx\nNzU0MzAwMjE5NCIsIm5hbWUiOiJURVNUREFUQSIsImRpc3BsYXlfbnVtYmVy\nIjoiKzEgKDc1NCkgMzAwLTIxOTQiLCJsb2NhdGlvbiI6bnVsbCwidG9sbF9m\ncmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVjb3JkZWQiOnRy\ndWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 13:54:36 GMT"},{"request":{"method":"put","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/52","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnt9fQ==\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":400,"message":"Bad Request"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:12:57 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Length":["40"],"Connection":["keep-alive"],"Status":["400 Bad Request"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"UmVxdWlyZWQgcGFyYW1ldGVyIG1pc3Npbmc6IHBob25lX251bWJlcg==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:12:57 GMT"},{"request":{"method":"get","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/52","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:12:58 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["229"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["83"],"Etag":["\"194d7a4561924b7ee2d31072e0e07df5\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjUyLCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDE1OjEyOjUxWiIsIm51bWJlciI6Iisx\nNDY5ODQ0NDI3MiIsIm5hbWUiOiJURVNUREFUQSIsImRpc3BsYXlfbnVtYmVy\nIjoiKzEgKDQ2OSkgODQ0LTQyNzIiLCJsb2NhdGlvbiI6bnVsbCwidG9sbF9m\ncmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVjb3JkZWQiOnRy\ndWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:12:58 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"put","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/61","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnt9fQ==\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":400,"message":"Bad Request"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 13:54:34 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Length":["40"],"Connection":["keep-alive"],"Status":["400 Bad Request"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"UmVxdWlyZWQgcGFyYW1ldGVyIG1pc3Npbmc6IHBob25lX251bWJlcg==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 13:54:34 GMT"},{"request":{"method":"put","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/52","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnt9fQ==\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":400,"message":"Bad Request"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:12:57 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Length":["40"],"Connection":["keep-alive"],"Status":["400 Bad Request"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"UmVxdWlyZWQgcGFyYW1ldGVyIG1pc3Npbmc6IHBob25lX251bWJlcg==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:12:57 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"put","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/61","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnsibmlja25hbWUiOiJURVNUREFUQSJ9fQ==\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 13:54:33 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["229"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["1090"],"Etag":["\"6b164a12d8618b3cf9050dd43cf4e10e\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjYxLCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDA4OjUyOjMzWiIsIm51bWJlciI6Iisx\nNzU0MzAwMjE5NCIsIm5hbWUiOiJURVNUREFUQSIsImRpc3BsYXlfbnVtYmVy\nIjoiKzEgKDc1NCkgMzAwLTIxOTQiLCJsb2NhdGlvbiI6bnVsbCwidG9sbF9m\ncmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVjb3JkZWQiOnRy\ndWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 13:54:33 GMT"},{"request":{"method":"put","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/52","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnsibmlja25hbWUiOiJURVNUREFUQSJ9fQ==\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:12:57 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["229"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["235"],"Etag":["\"194d7a4561924b7ee2d31072e0e07df5\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjUyLCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDE1OjEyOjUxWiIsIm51bWJlciI6Iisx\nNDY5ODQ0NDI3MiIsIm5hbWUiOiJURVNUREFUQSIsImRpc3BsYXlfbnVtYmVy\nIjoiKzEgKDQ2OSkgODQ0LTQyNzIiLCJsb2NhdGlvbiI6bnVsbCwidG9sbF9m\ncmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVjb3JkZWQiOnRy\ndWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:12:57 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"post","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnsibnVtYmVyIjoiKzE0ODQ0OTg2NTkwIiwiY291\nbnRyeV9jb2RlIjoiVVMiLCJudW1iZXJfdHlwZSI6ImxvY2FsIn19\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:00:21 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["238"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["2575"],"Etag":["\"7aa1a2e5a56a8e87db32554a20f3c1ee\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjQ3LCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDE1OjAwOjIxWiIsIm51bWJlciI6Iisx\nNDg0NDk4NjU5MCIsIm5hbWUiOiIrMSAoNDg0KSA0OTgtNjU5MCIsImRpc3Bs\nYXlfbnVtYmVyIjoiKzEgKDQ4NCkgNDk4LTY1OTAiLCJsb2NhdGlvbiI6bnVs\nbCwidG9sbF9mcmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVj\nb3JkZWQiOnRydWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:00:21 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"delete","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/47","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:00:23 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Length":["1"],"Connection":["keep-alive"],"Status":["200 OK"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["204"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"IA==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:00:23 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"post","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnsibnVtYmVyIjoiKzE0NDM0MDY0NzU5IiwiY291\nbnRyeV9jb2RlIjoiVVMiLCJ0b2xsX2ZyZWUiOiJmYWxzZSJ9fQ==\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 16:25:10 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["238"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["2040"],"Etag":["\"c9c932a7305bd0b676cc77c72a81111e\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjYyLCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDE2OjI1OjA5WiIsIm51bWJlciI6Iisx\nNDQzNDA2NDc1OSIsIm5hbWUiOiIrMSAoNDQzKSA0MDYtNDc1OSIsImRpc3Bs\nYXlfbnVtYmVyIjoiKzEgKDQ0MykgNDA2LTQ3NTkiLCJsb2NhdGlvbiI6bnVs\nbCwidG9sbF9mcmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVj\nb3JkZWQiOnRydWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 16:25:10 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"post","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers","body":{"encoding":"UTF-8","base64_string":"eyJwaG9uZV9udW1iZXIiOnsibnVtYmVyIjoiKzE0Njk4NDQ0MjcyIiwiY291\nbnRyeV9jb2RlIjoiVVMiLCJudW1iZXJfdHlwZSI6ImxvY2FsIn19\n"},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"],"Content-Type":["application/json"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:12:56 GMT"],"Content-Type":["application/json; charset=utf-8"],"Content-Length":["238"],"Connection":["keep-alive"],"Status":["200 OK"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["6382"],"Etag":["\"4f6781ef2a7c1a8524d71e43fb6beae6\""],"Cache-Control":["private, max-age=0, must-revalidate"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"eyJwaG9uZV9udW1iZXIiOnsiaWQiOjUyLCJjb3VudHJ5X2lkIjoxNTYsImNy\nZWF0ZWRfYXQiOiIyMDEzLTA4LTIxVDE1OjEyOjUxWiIsIm51bWJlciI6Iisx\nNDY5ODQ0NDI3MiIsIm5hbWUiOiIrMSAoNDY5KSA4NDQtNDI3MiIsImRpc3Bs\nYXlfbnVtYmVyIjoiKzEgKDQ2OSkgODQ0LTQyNzIiLCJsb2NhdGlvbiI6bnVs\nbCwidG9sbF9mcmVlIjpmYWxzZSwidHJhbnNjcmlwdGlvbiI6dHJ1ZSwicmVj\nb3JkZWQiOnRydWV9fQ==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:12:56 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -0,0 +1 @@
1
+ {"http_interactions":[{"request":{"method":"delete","uri":"http://agent%40zendesk.com:Testing123%21@support.localhost/api/v2/channels/voice/phone_numbers/52","body":{"encoding":"US-ASCII","base64_string":""},"headers":{"Accept":["application/json"],"Accept-Encoding":["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"],"User-Agent":["ZendeskAPI API 1.0.1"]}},"response":{"status":{"code":200,"message":"OK"},"headers":{"Server":["nginx/1.2.8"],"Date":["Wed, 21 Aug 2013 15:12:58 GMT"],"Content-Type":["text/html; charset=utf-8"],"Content-Length":["1"],"Connection":["keep-alive"],"Status":["200 OK"],"Cache-Control":["no-cache"],"X-Zendesk-Api-Version":["v2"],"X-Runtime":["277"],"X-Zendesk-Origin-Server":["calvin.local"],"X-Zendesk-User-Id":["2"]},"body":{"encoding":"US-ASCII","base64_string":"IA==\n"},"http_version":null},"recorded_at":"Wed, 21 Aug 2013 15:12:58 GMT"}],"recorded_with":"VCR 2.5.0"}
@@ -9,7 +9,8 @@ describe ZendeskAPI::Ticket do
9
9
  :priority => "normal",
10
10
  :requester_id => user.id,
11
11
  :submitter_id => user.id,
12
- :collaborator_ids => [agent.id]
12
+ :collaborator_ids => [agent.id],
13
+ :tags => ["awesome", "blossom"]
13
14
  }
14
15
  end
15
16
 
@@ -0,0 +1,11 @@
1
+ describe ZendeskAPI::Voice::PhoneNumber, :delete_after do
2
+ def valid_attributes
3
+ {:number => "+14434064759", :country_code => "US", :toll_free => "false"}
4
+ end
5
+
6
+ it_should_be_creatable
7
+ it_should_be_updatable :nickname
8
+ it_should_be_updatable :transcription
9
+ it_should_be_updatable :recorded
10
+ it_should_be_deletable
11
+ end
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.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-08-26 00:00:00.000000000 Z
13
+ date: 2013-09-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bump
@@ -254,6 +254,7 @@ files:
254
254
  - lib/zendesk_api/console/extensions.rb
255
255
  - lib/zendesk_api/console/options.rb
256
256
  - lib/zendesk_api/core_ext/inflection.rb
257
+ - lib/zendesk_api/delegator.rb
257
258
  - lib/zendesk_api/error.rb
258
259
  - lib/zendesk_api/helpers.rb
259
260
  - lib/zendesk_api/lru_cache.rb
@@ -465,6 +466,16 @@ files:
465
466
  - spec/core/trackie_spec.rb
466
467
  - spec/fixtures/Argentina.gif
467
468
  - spec/fixtures/Argentina2.gif
469
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/creation/should_be_findable.json
470
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/deletion/should_be_destroyable.json
471
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/update/after_save/should_be_findable.json
472
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/update/after_save/should_keep_attributes.json
473
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/update/should_be_savable.json
474
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_create.json
475
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_create_delete.json
476
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_delete_create.json
477
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_update_create.json
478
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_update_delete.json
468
479
  - spec/fixtures/credentials.yml.example
469
480
  - spec/fixtures/test_resources.rb
470
481
  - spec/fixtures/zendesk.rb
@@ -504,6 +515,7 @@ files:
504
515
  - spec/live/user_field_spec.rb
505
516
  - spec/live/user_spec.rb
506
517
  - spec/live/view_spec.rb
518
+ - spec/live/voice/phone_number_spec.rb
507
519
  - spec/macros/resource_macros.rb
508
520
  - spec/server/app_spec.rb
509
521
  - spec/server/helper_spec.rb
@@ -562,6 +574,16 @@ test_files:
562
574
  - spec/core/trackie_spec.rb
563
575
  - spec/fixtures/Argentina.gif
564
576
  - spec/fixtures/Argentina2.gif
577
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/creation/should_be_findable.json
578
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/deletion/should_be_destroyable.json
579
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/update/after_save/should_be_findable.json
580
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/update/after_save/should_keep_attributes.json
581
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber/update/should_be_savable.json
582
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_create.json
583
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_create_delete.json
584
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_delete_create.json
585
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_update_create.json
586
+ - spec/fixtures/cassettes/ZendeskAPI_Voice_PhoneNumber_update_delete.json
565
587
  - spec/fixtures/credentials.yml.example
566
588
  - spec/fixtures/test_resources.rb
567
589
  - spec/fixtures/zendesk.rb
@@ -601,6 +623,7 @@ test_files:
601
623
  - spec/live/user_field_spec.rb
602
624
  - spec/live/user_spec.rb
603
625
  - spec/live/view_spec.rb
626
+ - spec/live/voice/phone_number_spec.rb
604
627
  - spec/macros/resource_macros.rb
605
628
  - spec/server/app_spec.rb
606
629
  - spec/server/helper_spec.rb