zendesk2 1.2.7 → 1.2.9

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/zendesk2/client/mock.rb +7 -1
  3. data/lib/zendesk2/client/models/ticket.rb +1 -1
  4. data/lib/zendesk2/client/requests/create_category.rb +1 -1
  5. data/lib/zendesk2/client/requests/create_ticket.rb +9 -7
  6. data/lib/zendesk2/client/requests/create_user.rb +1 -1
  7. data/lib/zendesk2/client/requests/create_user_identity.rb +2 -1
  8. data/lib/zendesk2/client/requests/destroy_category.rb +1 -1
  9. data/lib/zendesk2/client/requests/destroy_forum.rb +2 -1
  10. data/lib/zendesk2/client/requests/destroy_group.rb +1 -2
  11. data/lib/zendesk2/client/requests/destroy_membership.rb +2 -1
  12. data/lib/zendesk2/client/requests/destroy_organization.rb +2 -2
  13. data/lib/zendesk2/client/requests/destroy_ticket.rb +1 -1
  14. data/lib/zendesk2/client/requests/destroy_ticket_field.rb +1 -1
  15. data/lib/zendesk2/client/requests/destroy_topic.rb +2 -1
  16. data/lib/zendesk2/client/requests/destroy_topic_comment.rb +2 -1
  17. data/lib/zendesk2/client/requests/destroy_user.rb +3 -5
  18. data/lib/zendesk2/client/requests/destroy_user_field.rb +1 -1
  19. data/lib/zendesk2/client/requests/destroy_user_identity.rb +4 -4
  20. data/lib/zendesk2/client/requests/get_forum.rb +1 -1
  21. data/lib/zendesk2/client/requests/get_help_center_article.rb +1 -1
  22. data/lib/zendesk2/client/requests/get_help_center_category.rb +1 -1
  23. data/lib/zendesk2/client/requests/get_help_center_section.rb +1 -1
  24. data/lib/zendesk2/client/requests/get_organization_by_external_id.rb +2 -2
  25. data/lib/zendesk2/client/requests/get_requested_tickets.rb +2 -2
  26. data/lib/zendesk2/client/requests/get_topic.rb +1 -1
  27. data/lib/zendesk2/client/requests/get_user.rb +8 -4
  28. data/lib/zendesk2/client/requests/get_user_identities.rb +1 -1
  29. data/lib/zendesk2/client/requests/mark_user_identity_primary.rb +2 -2
  30. data/lib/zendesk2/client/requests/search_user.rb +1 -1
  31. data/lib/zendesk2/client/requests/update_category.rb +1 -1
  32. data/lib/zendesk2/client/requests/update_forum.rb +2 -1
  33. data/lib/zendesk2/client/requests/update_help_center_article.rb +1 -1
  34. data/lib/zendesk2/client/requests/update_help_center_category.rb +2 -2
  35. data/lib/zendesk2/client/requests/update_help_center_section.rb +2 -2
  36. data/lib/zendesk2/client/requests/update_organization.rb +1 -1
  37. data/lib/zendesk2/client/requests/update_ticket.rb +1 -1
  38. data/lib/zendesk2/client/requests/update_ticket_field.rb +3 -3
  39. data/lib/zendesk2/client/requests/update_topic.rb +2 -1
  40. data/lib/zendesk2/client/requests/update_user.rb +5 -4
  41. data/lib/zendesk2/client/requests/update_user_identity.rb +3 -3
  42. data/lib/zendesk2/version.rb +1 -1
  43. data/spec/tickets_spec.rb +2 -2
  44. data/spec/users_spec.rb +18 -8
  45. metadata +2 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fbedbdbd2cc1fb5d7181d274138df03c74caf78a
4
- data.tar.gz: d1b795649c0ecc16cf9142bc7c527b9f9048c81c
3
+ metadata.gz: be50d350e9c25fc106b0bc4155ee76d24ebce43a
4
+ data.tar.gz: dda78a4ca0bae941f2c1357a0d443ff50ecc06e1
5
5
  SHA512:
6
- metadata.gz: 93400647817f08b86d3322a4dc24282bd5b0ce04218cb8d3e782da177d84312f552ca85eeccb020ea5b71fa419dbc96bfb8ed4ed6ed32bef42d41f52ed912e20
7
- data.tar.gz: 7864462a046770514e143cf51d0ba2af739c21c968e327523087445ab3af25a70e5d198fbb7bbf5ea7372bb35bcf21745887d812610be29ba61b00b83e0fbc79
6
+ metadata.gz: c8e5ebae513b256ed1fc3f55851f8ad572753dce377b68fca8009376f1ab65cc73ba1aae3e4684d0523bf1e1bc900eadd741117de802931643a967357d0100ba
7
+ data.tar.gz: 39641e3dc44246592f5e980da926c5a69b754f0d51fb5d6c8497878d6b1475e93bd5a91fd10856660538e33c29df4e098dac6e65a93e44cca1824e3bc3d9b8fa
@@ -30,6 +30,7 @@ class Zendesk2::Client < Cistern::Service
30
30
  def self.new_id
31
31
  @current_id ||= 0
32
32
  @current_id += 1
33
+ @current_id.to_s
33
34
  end
34
35
 
35
36
  def data
@@ -136,13 +137,18 @@ class Zendesk2::Client < Cistern::Service
136
137
  end
137
138
 
138
139
  def find!(collection, identity, options={})
139
- if resource = self.data[collection][identity]
140
+ if resource = self.data[collection][identity.to_s]
140
141
  resource
141
142
  else
142
143
  error!(options[:error] || :not_found)
143
144
  end
144
145
  end
145
146
 
147
+ def delete!(collection, identity, options={})
148
+ self.data[collection].delete(identity.to_s) ||
149
+ error!(options[:error] || :not_found)
150
+ end
151
+
146
152
  def error!(type, options={})
147
153
  status, body = self.class.error_map[type]
148
154
  body.merge!("details" => options[:details]) if options[:details]
@@ -67,7 +67,7 @@ class Zendesk2::Client::Ticket < Zendesk2::Model
67
67
  data = if new_record?
68
68
  requires :subject, :description
69
69
 
70
- with_requester = @requester && Zendesk2.stringify_keys(@requester)
70
+ with_requester = (@requester || nil) && Zendesk2.stringify_keys(@requester)
71
71
 
72
72
  connection.create_ticket(params.merge("requester" => with_requester)).body["ticket"]
73
73
  else
@@ -20,7 +20,7 @@ class Zendesk2::Client
20
20
  "updated_at" => Time.now.iso8601,
21
21
  }.merge(params)
22
22
 
23
- self.data[:categories][identity]= record
23
+ self.data[:categories][identity] = record
24
24
 
25
25
  response(
26
26
  :method => :post,
@@ -19,6 +19,8 @@ class Zendesk2::Client
19
19
  error!(:invalid, :details => {"base" => [{"description" => "Description: cannot be blank"}]})
20
20
  end
21
21
 
22
+ requester_id = params.delete('requester_id')
23
+
22
24
  if requester = params.delete('requester')
23
25
  if !requester['name'] || requester['name'].size < 1
24
26
  response(
@@ -41,7 +43,7 @@ class Zendesk2::Client
41
43
  else
42
44
  # name is not required in this case
43
45
  create_user(requester).body["user"]["id"]
44
- end
46
+ end.to_s
45
47
 
46
48
  params['requester_id'] = user_id
47
49
  end
@@ -49,15 +51,15 @@ class Zendesk2::Client
49
51
  requested_custom_fields = (params.delete("custom_fields") || [])
50
52
 
51
53
  custom_fields = requested_custom_fields.map do |cf|
52
- field_id = cf["id"].to_i
54
+ field_id = cf["id"].to_s
53
55
  if self.data[:ticket_fields][field_id]
54
56
  {"id" => field_id, "value" => cf["value"] }
55
57
  end
56
58
  end.compact
57
59
 
58
60
  self.data[:ticket_fields].each do |field_id, field|
59
- requested_custom_fields.find { |cf| cf["id"] == field_id } ||
60
- custom_fields << {"id" => field_id, "value" => nil }
61
+ requested_custom_fields.find { |cf| cf["id"] == field_id.to_s } ||
62
+ custom_fields << {"id" => field_id.to_s, "value" => nil }
61
63
  end
62
64
 
63
65
  record = {
@@ -70,11 +72,11 @@ class Zendesk2::Client
70
72
  "custom_fields" => custom_fields,
71
73
  }.merge(params)
72
74
 
73
- record["requester_id"] ||= current_user["id"]
74
- record["submitter_id"] = current_user["id"]
75
+ record["requester_id"] ||= (requester_id && requester_id.to_s) || current_user["id"].to_s
76
+ record["submitter_id"] = current_user["id"].to_s
75
77
 
76
78
  # FIXME: throw error if user doesn't exist?
77
- requester = self.data[:users][record["requester_id"]]
79
+ requester = self.find!(:users, record["requester_id"])
78
80
  record["organization_id"] = requester["organization_id"]
79
81
 
80
82
  self.data[:tickets][identity] = record
@@ -33,7 +33,7 @@ class Zendesk2::Client
33
33
  "description" => "Email: #{email} is already being used by another user"
34
34
  }]})
35
35
  else
36
- user_identity_id = self.class.new_id # ugh
36
+ user_identity_id = self.class.new_id
37
37
 
38
38
  user_identity = {
39
39
  "id" => user_identity_id,
@@ -16,7 +16,7 @@ class Zendesk2::Client
16
16
  params = Cistern::Hash.stringify_keys(params)
17
17
 
18
18
  identity = self.class.new_id
19
- user_id = params["user_id"]
19
+ user_id = params.delete("user_id").to_s
20
20
 
21
21
  record = {
22
22
  "id" => identity,
@@ -25,6 +25,7 @@ class Zendesk2::Client
25
25
  "updated_at" => Time.now.iso8601,
26
26
  "verified" => false,
27
27
  "primary" => false,
28
+ "user_id" => user_id,
28
29
  }.merge(params)
29
30
 
30
31
  record.merge("primary" => true) if self.data[:identities].values.find { |ui| ui["user_id"] == user_id }.nil?
@@ -13,7 +13,7 @@ class Zendesk2::Client
13
13
  class Mock
14
14
  def destroy_category(params={})
15
15
  id = params["id"]
16
- body = self.data[:categories].delete(id)
16
+ body = self.delete!(:categories, id)
17
17
 
18
18
  response(
19
19
  :method => :delete,
@@ -15,7 +15,8 @@ class Zendesk2::Client
15
15
  id = params["id"]
16
16
  path = "/forums/#{id}.json"
17
17
 
18
- body = self.data[:forums].delete(id)
18
+ body = self.delete!(:forums, id)
19
+
19
20
  response(
20
21
  :method => :delete,
21
22
  :path => path,
@@ -13,8 +13,7 @@ class Zendesk2::Client
13
13
  class Mock
14
14
  def destroy_group(params={})
15
15
  id = params["id"]
16
- body = self.data[:groups][id]
17
- body["deleted"] = true
16
+ body = self.find!(:groups, id).merge!("deleted" => true)
18
17
 
19
18
  response(
20
19
  :method => :delete,
@@ -14,7 +14,8 @@ class Zendesk2::Client
14
14
  def destroy_membership(params={})
15
15
  id = params["id"]
16
16
 
17
- body = self.data[:memberships].delete(id)
17
+ body = self.delete!(:memberships, id)
18
+
18
19
  response(
19
20
  :method => :delete,
20
21
  :path => "/organization_memberships/#{id}.json",
@@ -12,8 +12,8 @@ class Zendesk2::Client
12
12
 
13
13
  class Mock
14
14
  def destroy_organization(params={})
15
- id = params["id"]
16
- body = self.data[:organizations].delete(id)
15
+ id = require_parameters(params, "id")
16
+ body = self.delete!(:organizations, id)
17
17
 
18
18
  response(
19
19
  :method => :delete,
@@ -13,7 +13,7 @@ class Zendesk2::Client
13
13
  class Mock
14
14
  def destroy_ticket(params={})
15
15
  id = params["id"]
16
- body = self.data[:tickets].delete(id)
16
+ body = self.delete!(:tickets, id)
17
17
 
18
18
  response(
19
19
  :method => :delete,
@@ -13,7 +13,7 @@ class Zendesk2::Client
13
13
  class Mock
14
14
  def destroy_ticket_field(params={})
15
15
  id = params["id"]
16
- body = self.data[:ticket_fields].delete(id)
16
+ body = self.delete!(:ticket_fields, id)
17
17
 
18
18
  response(
19
19
  :method => :delete,
@@ -15,7 +15,8 @@ class Zendesk2::Client
15
15
  id = params["id"]
16
16
  path = "/topics/#{id}.json"
17
17
 
18
- body = self.data[:topics].delete(id)
18
+ body = self.delete!(:topics, id)
19
+
19
20
  response(
20
21
  :method => :delete,
21
22
  :path => path,
@@ -17,7 +17,8 @@ class Zendesk2::Client
17
17
  topic_id = params["topic_id"]
18
18
  path = "/topics/#{topic_id}/comments/#{id}.json"
19
19
 
20
- body = self.data[:topic_comments].delete(id)
20
+ body = self.delete!(:topic_comments, id)
21
+
21
22
  response(
22
23
  :method => :delete,
23
24
  :path => path,
@@ -12,17 +12,15 @@ class Zendesk2::Client
12
12
 
13
13
  class Mock
14
14
  def destroy_user(params={})
15
- id = params["id"]
15
+ id = params["id"].to_s
16
16
  path = "/users/#{id}.json"
17
17
 
18
- tickets = self.data[:tickets].values.select{|t| t["requester_id"] == id}.size
19
-
20
- find!(:users, id)
18
+ tickets = self.data[:tickets].values.select { |t| t["requester_id"] == id }.size
21
19
 
22
20
  if tickets < 1
23
21
  self.data[:identities].each { |k,v| self.data[:identities].delete(k) if v["user_id"] == id }
24
22
 
25
- body = self.data[:users].delete(id)
23
+ body = self.delete!(:users, id)
26
24
 
27
25
  response(
28
26
  :method => :delete,
@@ -13,7 +13,7 @@ class Zendesk2::Client
13
13
  class Mock
14
14
  def destroy_user_field(params={})
15
15
  id = params["id"]
16
- body = self.data[:user_fields].delete(id)
16
+ body = self.delete!(:user_fields, id)
17
17
 
18
18
  response(
19
19
  :method => :delete,
@@ -13,12 +13,12 @@ class Zendesk2::Client
13
13
 
14
14
  class Mock
15
15
  def destroy_user_identity(params={})
16
- id = params["id"]
17
- user_id = params["user_id"]
16
+ id = params["id"].to_s
17
+ user_id = params["user_id"].to_s
18
18
  path = "/users/#{user_id}/identities/#{id}.json"
19
19
 
20
- user_identity = self.data[:identities][id]
21
- body = self.data[:identities].delete(id)
20
+ body = self.delete!(:identities, id)
21
+
22
22
  response(
23
23
  :method => :delete,
24
24
  :path => path,
@@ -13,7 +13,7 @@ class Zendesk2::Client
13
13
  class Mock
14
14
  def get_forum(params={})
15
15
  id = params["id"]
16
- body = self.data[:forums][id]
16
+ body = self.find!(:forums, id)
17
17
 
18
18
  response(
19
19
  :path => "/forums/#{id}.json",
@@ -33,7 +33,7 @@ class Zendesk2::Client
33
33
  response(
34
34
  :path => path,
35
35
  :body => {
36
- "article" => self.find!(:help_center_articles, id.to_i)
36
+ "article" => self.find!(:help_center_articles, id)
37
37
  },
38
38
  )
39
39
  end
@@ -33,7 +33,7 @@ class Zendesk2::Client
33
33
  response(
34
34
  :path => path,
35
35
  :body => {
36
- "category" => self.find!(:help_center_categories, id.to_i)
36
+ "category" => self.find!(:help_center_categories, id)
37
37
  },
38
38
  )
39
39
  end
@@ -33,7 +33,7 @@ class Zendesk2::Client
33
33
  response(
34
34
  :path => path,
35
35
  :body => {
36
- "section" => self.find!(:help_center_sections, id.to_i)
36
+ "section" => self.find!(:help_center_sections, id)
37
37
  },
38
38
  )
39
39
  end
@@ -3,7 +3,7 @@ class Zendesk2::Client
3
3
  def get_organization_by_external_id(external_id)
4
4
  request(
5
5
  :method => :get,
6
- :params => {external_id: external_id},
6
+ :params => { external_id: external_id },
7
7
  :path => "/organizations/search.json",
8
8
  )
9
9
  end
@@ -13,7 +13,7 @@ class Zendesk2::Client
13
13
  def get_organization_by_external_id(external_id)
14
14
  collection = self.data[:organizations]
15
15
 
16
- results = collection.select{|k,v| v["external_id"] == external_id}.values
16
+ results = collection.select { |k,v| v["external_id"].to_s == external_id.to_s }.values
17
17
 
18
18
  response(
19
19
  :path => "/organizations/search.json",
@@ -14,9 +14,9 @@ class Zendesk2::Client
14
14
 
15
15
  class Mock
16
16
  def get_requested_tickets(params={})
17
- id = params["id"]
17
+ id = params["id"].to_s
18
18
 
19
- page(params, :tickets, "/requesteds/#{id}/tickets.json", "tickets", filter: lambda{|c| c.select{|u| u["requester_id"] == id}})
19
+ page(params, :tickets, "/requesteds/#{id}/tickets.json", "tickets", filter: lambda { |c| c.select { |u| u["requester_id"] == id } })
20
20
  end
21
21
  end # Mock
22
22
  end
@@ -13,7 +13,7 @@ class Zendesk2::Client
13
13
  class Mock
14
14
  def get_topic(params={})
15
15
  id = params["id"]
16
- body = self.data[:topics][id]
16
+ body = self.find!(:topics, id)
17
17
 
18
18
  response(
19
19
  :path => "/topics/#{id}.json",
@@ -12,17 +12,21 @@ class Zendesk2::Client
12
12
 
13
13
  class Mock
14
14
  def get_user(params={})
15
- id = require_parameters(params, "id").to_i
15
+ id = require_parameters(params, "id")
16
16
 
17
- identities = self.data[:identities].values.select { |i| i["user_id"] == id }
18
- identity = identities.find { |i| i["type"] == "email" && i["primary"] } || identities.find { |i| i["type"] == "email" }
17
+ identities = self.data[:identities].values.select { |i| i["user_id"] == id.to_s }
18
+ body = find!(:users, id).dup
19
+
20
+ if identity = identities.find { |i| i["type"] == "email" && i["primary"] } || identities.find { |i| i["type"] == "email" }
21
+ body.merge!("email" => identity["value"])
22
+ end
19
23
 
20
24
  # @todo what happens if no identity?
21
25
 
22
26
  response(
23
27
  :path => "/users/#{id}.json",
24
28
  :body => {
25
- "user" => find!(:users, id).merge("email" => identity["value"]),
29
+ "user" => body,
26
30
  },
27
31
  )
28
32
  end
@@ -16,7 +16,7 @@ class Zendesk2::Client
16
16
  def get_user_identities(params={})
17
17
  user_id = require_parameters(params, "user_id")
18
18
 
19
- page(params, :identities, "/users/#{user_id}/identities.json", "identities", filter: lambda { |c| c.select { |a| a["user_id"] == user_id } })
19
+ page(params, :identities, "/users/#{user_id}/identities.json", "identities", filter: lambda { |c| c.select { |a| a["user_id"].to_s == user_id.to_s } })
20
20
  end
21
21
  end # Mock
22
22
  end
@@ -13,8 +13,8 @@ class Zendesk2::Client
13
13
  end
14
14
  class Mock
15
15
  def mark_user_identity_primary(params={})
16
- id = params.delete("id")
17
- user_id = params.delete("user_id")
16
+ id = params.delete("id").to_s
17
+ user_id = params.delete("user_id").to_s
18
18
  path = "/users/#{user_id}/identities/#{id}/make_primary.json"
19
19
 
20
20
  user_identity = self.find!(:identities, id)
@@ -19,7 +19,7 @@ class Zendesk2::Client
19
19
 
20
20
  # allow searching by organization name
21
21
  collection = collection.map do |user|
22
- if organization = self.data[:organizations][user["organization_id"]]
22
+ if organization = self.data[:organizations][user["organization_id"].to_s]
23
23
  user.merge("organization" => organization["name"])
24
24
  else
25
25
  user
@@ -15,7 +15,7 @@ class Zendesk2::Client
15
15
  class Mock
16
16
  def update_category(params={})
17
17
  id = params.delete("id")
18
- body = self.data[:categories][id].merge!(params)
18
+ body = self.find!(:categories, id).merge!(params)
19
19
 
20
20
  response(
21
21
  :method => :put,
@@ -17,7 +17,8 @@ class Zendesk2::Client
17
17
  id = params.delete("id")
18
18
  path = "/forums/#{id}.json"
19
19
 
20
- body = self.data[:forums][id].merge!(params)
20
+ body = self.find!(:forums, id).merge!(params)
21
+
21
22
  response(
22
23
  :method => :put,
23
24
  :path => path,
@@ -34,7 +34,7 @@ class Zendesk2::Client
34
34
  "/help_center/articles/#{id}.json"
35
35
  end
36
36
 
37
- body = self.data[:help_center_articles][id.to_i].merge!(params)
37
+ body = self.find!(:help_center_articles, id).merge!(params)
38
38
 
39
39
  response(
40
40
  :method => :put,
@@ -25,7 +25,7 @@ class Zendesk2::Client
25
25
 
26
26
  require_parameters(params, "id")
27
27
 
28
- id = params.delete("id")
28
+ id = params.delete("id").to_s
29
29
  locale = params["locale"]
30
30
 
31
31
  path = if locale
@@ -34,7 +34,7 @@ class Zendesk2::Client
34
34
  "/help_center/categories/#{id}.json"
35
35
  end
36
36
 
37
- body = self.data[:help_center_categories][id.to_i].merge!(params)
37
+ body = self.find!(:help_center_categories, id).merge!(params)
38
38
 
39
39
  response(
40
40
  :method => :put,
@@ -25,7 +25,7 @@ class Zendesk2::Client
25
25
 
26
26
  require_parameters(params, "id")
27
27
 
28
- id = params.delete("id")
28
+ id = params.delete("id").to_s
29
29
  locale = params["locale"]
30
30
 
31
31
  path = if locale
@@ -34,7 +34,7 @@ class Zendesk2::Client
34
34
  "/help_center/sections/#{id}.json"
35
35
  end
36
36
 
37
- body = self.data[:help_center_sections][id.to_i].merge!(params)
37
+ body = self.find!(:help_center_sections, id).merge!(params)
38
38
 
39
39
  response(
40
40
  :method => :put,
@@ -20,7 +20,7 @@ class Zendesk2::Client
20
20
  organization = self.find!(:organizations, id)
21
21
 
22
22
  other_organizations = self.data[:organizations].dup
23
- other_organizations.delete(id)
23
+ other_organizations.delete(id.to_s)
24
24
 
25
25
  if other_organizations.values.find { |o| o["name"] == params["name"] }
26
26
  error!(:invalid, details: {"name" => [ { "description" => "Name: has already been taken" } ]})
@@ -15,7 +15,7 @@ class Zendesk2::Client
15
15
  class Mock
16
16
  def update_ticket(params={})
17
17
  ticket_id = params.delete("id")
18
- body = self.data[:tickets][ticket_id].merge!(params)
18
+ body = self.find!(:tickets, ticket_id).merge!(params)
19
19
 
20
20
  if comment = params["comment"]
21
21
  comment_id = self.class.new_id
@@ -14,12 +14,12 @@ class Zendesk2::Client
14
14
  end
15
15
  class Mock
16
16
  def update_ticket_field(params={})
17
- ticket_field_id = params.delete("id")
18
- body = self.data[:ticket_fields][ticket_field_id].merge!(params)
17
+ id = params.delete("id")
18
+ body = self.find!(:ticket_fields, id).merge!(params)
19
19
 
20
20
  response(
21
21
  :method => :put,
22
- :path => "/ticket_fields/#{ticket_field_id}.json",
22
+ :path => "/ticket_fields/#{id}.json",
23
23
  :body => {
24
24
  "ticket_field" => body
25
25
  },
@@ -17,7 +17,8 @@ class Zendesk2::Client
17
17
  id = params.delete("id")
18
18
  path = "/topics/#{id}.json"
19
19
 
20
- body = self.data[:topics][id].merge!(params)
20
+ body = self.find!(:topics, id).merge!(params)
21
+
21
22
  response(
22
23
  :method => :put,
23
24
  :path => path,
@@ -1,7 +1,8 @@
1
1
  class Zendesk2::Client
2
2
  class Real
3
- def update_user(params={})
4
- id = params.delete("id")
3
+ def update_user(_params={})
4
+ params = Cistern::Hash.stringify_keys(_params)
5
+ id = params.delete("id")
5
6
 
6
7
  request(
7
8
  :method => :put,
@@ -15,7 +16,7 @@ class Zendesk2::Client
15
16
  class Mock
16
17
  def update_user(_params={})
17
18
  params = Cistern::Hash.stringify_keys(_params)
18
- user_id = params.delete("id")
19
+ user_id = params.delete("id").to_s
19
20
  path = "/users/#{user_id}.json"
20
21
 
21
22
  email = params["email"]
@@ -57,7 +58,7 @@ class Zendesk2::Client
57
58
  self.data[:identities][user_identity_id] = user_identity
58
59
  end
59
60
 
60
- body = self.data[:users][user_id].merge!(params)
61
+ body = self.find!(:users, user_id).merge!(params)
61
62
 
62
63
  response(
63
64
  :method => :put,
@@ -16,11 +16,11 @@ class Zendesk2::Client
16
16
  end
17
17
  class Mock
18
18
  def update_user_identity(params={})
19
- id = params.delete("id")
20
- user_id = params.delete("user_id")
19
+ id = params.delete("id").to_s
20
+ user_id = params.delete("user_id").to_s
21
21
  path = "/users/#{user_id}/identities/#{id}.json"
22
22
 
23
- body = self.data[:identities][id].merge!(Cistern::Hash.slice(params, "verified"))
23
+ body = self.find!(:identities, id).merge!(Cistern::Hash.slice(params, "verified"))
24
24
  response(
25
25
  :method => :put,
26
26
  :path => path,
@@ -1,3 +1,3 @@
1
1
  module Zendesk2
2
- VERSION = "1.2.7"
2
+ VERSION = "1.2.9"
3
3
  end
data/spec/tickets_spec.rb CHANGED
@@ -111,13 +111,13 @@ describe "Zendesk2::Client" do
111
111
 
112
112
  it "should be based on ticket_fields" do
113
113
  ticket = client.tickets.create!(subject: mock_uuid, description: mock_uuid)
114
- custom_field = ticket.custom_fields.find { |cf| cf["id"] == ticket_field.identity }
114
+ custom_field = ticket.custom_fields.find { |cf| cf["id"].to_s == ticket_field.identity.to_s }
115
115
 
116
116
  expect(custom_field).not_to be_nil
117
117
  expect(custom_field["value"]).to be_nil
118
118
 
119
119
  ticket = client.tickets.create!(subject: mock_uuid, description: mock_uuid, custom_fields: [{"id" => ticket_field.identity, "value" => "jessicaspacekat"}])
120
- custom_field = ticket.custom_fields.find { |cf| cf["id"] == ticket_field.identity }
120
+ custom_field = ticket.custom_fields.find { |cf| cf["id"].to_s == ticket_field.identity.to_s }
121
121
 
122
122
  expect(custom_field).not_to be_nil
123
123
  expect(custom_field["value"]).to eq("jessicaspacekat")
data/spec/users_spec.rb CHANGED
@@ -16,12 +16,14 @@ describe "users" do
16
16
 
17
17
  describe "#create_user" do
18
18
  it "should prevent duplicate external_ids" do
19
- client.create_user(email: mock_email, name: "a", external_id: nil) # fine
20
- client.create_user(email: mock_email, name: "b", external_id: nil) # also fine
21
- client.create_user(email: mock_email, name: "c", external_id: "1") # it's cool
19
+ external_id = mock_uuid
20
+
21
+ client.create_user(email: mock_email, name: "a", external_id: nil) # fine
22
+ client.create_user(email: mock_email, name: "b", external_id: nil) # also fine
23
+ client.create_user(email: mock_email, name: "c", external_id: external_id) # it's cool
22
24
 
23
25
  expect {
24
- client.create_user(email: mock_email, name: "d", external_id: "1")
26
+ client.create_user(email: mock_email, name: "d", external_id: external_id)
25
27
  }.to raise_exception(Zendesk2::Error, /External has already been taken/)
26
28
  end
27
29
  end
@@ -31,11 +33,13 @@ describe "users" do
31
33
  user = client.users.create(email: mock_email, name: "a")
32
34
  another_user = client.users.create(email: mock_email, name: "b")
33
35
 
34
- client.update_user(id: user.id, external_id: nil) # fine
35
- client.update_user(id: another_user.id, external_id: "1") # also fine
36
+ external_id = mock_uuid
37
+
38
+ client.update_user(id: user.id, external_id: nil) # fine
39
+ client.update_user(id: another_user.id, external_id: external_id) # also fine
36
40
 
37
41
  expect {
38
- client.update_user("id" => user.id, external_id: "1")
42
+ client.update_user("id" => user.id, external_id: external_id)
39
43
  }.to raise_exception(Zendesk2::Error, /External has already been taken/)
40
44
  end
41
45
  end
@@ -103,6 +107,7 @@ describe "users" do
103
107
  email = "ey+#{mock_uuid}@example.org"
104
108
 
105
109
  new_identity = user.identities.create!(type: "email", value: email)
110
+
106
111
  expect(new_identity.primary).to be_falsey
107
112
  expect(new_identity.verified).to be_falsey
108
113
  expect(new_identity.type).to eq("email")
@@ -115,11 +120,16 @@ describe "users" do
115
120
  initial_identity = user.identities.all.first
116
121
  new_identity = user.identities.create!(type: "email", value: email)
117
122
 
118
- initial_identity.destroy
123
+ expect {
124
+ initial_identity.destroy
125
+ }.to change { user.identities.all }.
126
+ from(a_collection_containing_exactly(initial_identity, new_identity)).
127
+ to(a_collection_containing_exactly(new_identity))
119
128
 
120
129
  expect(new_identity.reload.primary).to be_falsey
121
130
 
122
131
  new_identity.primary!
132
+
123
133
  expect(new_identity.reload.primary).to be_truthy
124
134
  end
125
135
 
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.7
4
+ version: 1.2.9
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-10-15 00:00:00.000000000 Z
11
+ date: 2014-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -308,4 +308,3 @@ test_files:
308
308
  - spec/user_fields_spec.rb
309
309
  - spec/user_identities_spec.rb
310
310
  - spec/users_spec.rb
311
- has_rdoc: