zendesk2 1.2.4 → 1.2.5

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: 930984502b3ffcce83fd01762bb8d48a07d760d5
4
- data.tar.gz: 901281d2b7f73eeedbb0405ab259f62d6ab920aa
3
+ metadata.gz: 281e65de8d7fc12c868312a9d3544dec44a584f7
4
+ data.tar.gz: 020d4a2cedceba691113f3bf5a18137a5c8df58d
5
5
  SHA512:
6
- metadata.gz: f642fe7199612809c97ec24c1f3a680ac33a270944d4205c6316bf4a6a4429224f0b09d331f1af5b4d671345b1450029be7af405d96471fadfb12064d277fa40
7
- data.tar.gz: 76141a4780845418663435b0ef1cd769d0fe5ba5cbcc277d31df3c8978587c5f497d3802e75e1b32497bcf5e6e627c97565241ce59e90b5c8c4fe7da917dbfe3
6
+ metadata.gz: f5a5ecc71d76557bc9e4dd70f64da853c70953f2a1040e87c72371f7fb005e3c7f56cac5537802e9a205103f42d994fa21cfaf5480b3cf7405f9881351c98f07
7
+ data.tar.gz: 877a512b7b15e43c6c9c882a1e063792c11a638aeea00bceb060340a922cff1aa92e0a208a6abb7c6a584b1016dc546340711a2e5ad83498d8ece93c584c7c08
data/lib/zendesk2.rb CHANGED
@@ -12,7 +12,7 @@ require 'forwardable'
12
12
  require 'logger'
13
13
  require 'time'
14
14
  require 'yaml'
15
- require 'uri'
15
+ require 'securerandom'
16
16
 
17
17
  module Zendesk2
18
18
  def self.defaults
@@ -24,20 +24,21 @@ module Zendesk2
24
24
  end
25
25
 
26
26
  def self.paging_parameters(options={})
27
- if url = options["url"]
28
- uri = Addressable::URI.parse(url)
29
- uri.query_values
30
- else
31
- Cistern::Hash.slice(options, "page", "per_page")
32
- end
27
+ params = if url = options["url"]
28
+ Addressable::URI.parse(url).query_values
29
+ else
30
+ options
31
+ end
32
+
33
+ Cistern::Hash.slice(params, "page", "per_page")
33
34
  end
34
35
 
35
36
  def self.uuid
36
- [8,4,4,4,12].map{|i| Cistern::Mock.random_hex(i)}.join("-")
37
+ SecureRandom.uuid
37
38
  end
38
39
 
39
40
  def self.stringify_keys(hash)
40
- hash.inject({}){|r,(k,v)| r.merge(k.to_s => v)}
41
+ hash.inject({}) { |r,(k,v)| r.merge(k.to_s => v) }
41
42
  end
42
43
 
43
44
  def self.blank?(string)
@@ -21,6 +21,7 @@ class Zendesk2::Client < Cistern::Service
21
21
  module Shared
22
22
  def require_parameters(_params, *requirements)
23
23
  params = Cistern::Hash.stringify_keys(_params)
24
+ params.reject! { |_,v| Zendesk2.blank?(v) }
24
25
 
25
26
  if (missing = requirements - params.keys).any?
26
27
  raise ArgumentError, "missing parameters: #{missing.join(", ")}"
@@ -42,7 +42,7 @@ class Zendesk2::Client < Cistern::Service
42
42
 
43
43
  def initialize(options={})
44
44
  @url = options[:url]
45
- @path = ::URI.parse(url).path
45
+ @path = Addressable::URI.parse(url).path
46
46
  @username, @password = options[:username], options[:password]
47
47
  @token = options[:token]
48
48
  @jwt_token = options[:jwt_token]
@@ -6,7 +6,7 @@ class Zendesk2::Client < Cistern::Service
6
6
 
7
7
  def initialize(options={})
8
8
  @url = if url = options[:url] || Zendesk2.defaults[:url]
9
- ::URI.parse(url).to_s
9
+ Addressable::URI.parse(url).to_s
10
10
  end
11
11
 
12
12
  @logger = options[:logger] || Logger.new(nil)
@@ -12,9 +12,9 @@ class Zendesk2::Client
12
12
 
13
13
  class Mock
14
14
  def get_user(params={})
15
- id = params["id"]
15
+ id = require_parameters(params, "id").to_i
16
16
 
17
- identities = self.data[:identities].values.select{|i| i["user_id"] == id}
17
+ identities = self.data[:identities].values.select { |i| i["user_id"] == id }
18
18
  identity = identities.find { |i| i["type"] == "email" && i["primary"] } || identities.find { |i| i["type"] == "email" }
19
19
 
20
20
  # @todo what happens if no identity?
@@ -5,9 +5,9 @@ class Zendesk2::Client
5
5
  page_params = Zendesk2.paging_parameters(params)
6
6
 
7
7
  request(
8
- :params => page_params,
9
- :method => :get,
10
- :path => "/users/#{user_id}/identities.json",
8
+ :params => page_params,
9
+ :method => :get,
10
+ :path => "/users/#{user_id}/identities.json",
11
11
  )
12
12
  end
13
13
  end # Real
@@ -1,3 +1,3 @@
1
1
  module Zendesk2
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-26 00:00:00.000000000 Z
11
+ date: 2014-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable