zendesk2 1.2.7 → 1.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/zendesk2/client/mock.rb +7 -1
- data/lib/zendesk2/client/models/ticket.rb +1 -1
- data/lib/zendesk2/client/requests/create_category.rb +1 -1
- data/lib/zendesk2/client/requests/create_ticket.rb +9 -7
- data/lib/zendesk2/client/requests/create_user.rb +1 -1
- data/lib/zendesk2/client/requests/create_user_identity.rb +2 -1
- data/lib/zendesk2/client/requests/destroy_category.rb +1 -1
- data/lib/zendesk2/client/requests/destroy_forum.rb +2 -1
- data/lib/zendesk2/client/requests/destroy_group.rb +1 -2
- data/lib/zendesk2/client/requests/destroy_membership.rb +2 -1
- data/lib/zendesk2/client/requests/destroy_organization.rb +2 -2
- data/lib/zendesk2/client/requests/destroy_ticket.rb +1 -1
- data/lib/zendesk2/client/requests/destroy_ticket_field.rb +1 -1
- data/lib/zendesk2/client/requests/destroy_topic.rb +2 -1
- data/lib/zendesk2/client/requests/destroy_topic_comment.rb +2 -1
- data/lib/zendesk2/client/requests/destroy_user.rb +3 -5
- data/lib/zendesk2/client/requests/destroy_user_field.rb +1 -1
- data/lib/zendesk2/client/requests/destroy_user_identity.rb +4 -4
- data/lib/zendesk2/client/requests/get_forum.rb +1 -1
- data/lib/zendesk2/client/requests/get_help_center_article.rb +1 -1
- data/lib/zendesk2/client/requests/get_help_center_category.rb +1 -1
- data/lib/zendesk2/client/requests/get_help_center_section.rb +1 -1
- data/lib/zendesk2/client/requests/get_organization_by_external_id.rb +2 -2
- data/lib/zendesk2/client/requests/get_requested_tickets.rb +2 -2
- data/lib/zendesk2/client/requests/get_topic.rb +1 -1
- data/lib/zendesk2/client/requests/get_user.rb +8 -4
- data/lib/zendesk2/client/requests/get_user_identities.rb +1 -1
- data/lib/zendesk2/client/requests/mark_user_identity_primary.rb +2 -2
- data/lib/zendesk2/client/requests/search_user.rb +1 -1
- data/lib/zendesk2/client/requests/update_category.rb +1 -1
- data/lib/zendesk2/client/requests/update_forum.rb +2 -1
- data/lib/zendesk2/client/requests/update_help_center_article.rb +1 -1
- data/lib/zendesk2/client/requests/update_help_center_category.rb +2 -2
- data/lib/zendesk2/client/requests/update_help_center_section.rb +2 -2
- data/lib/zendesk2/client/requests/update_organization.rb +1 -1
- data/lib/zendesk2/client/requests/update_ticket.rb +1 -1
- data/lib/zendesk2/client/requests/update_ticket_field.rb +3 -3
- data/lib/zendesk2/client/requests/update_topic.rb +2 -1
- data/lib/zendesk2/client/requests/update_user.rb +5 -4
- data/lib/zendesk2/client/requests/update_user_identity.rb +3 -3
- data/lib/zendesk2/version.rb +1 -1
- data/spec/tickets_spec.rb +2 -2
- data/spec/users_spec.rb +18 -8
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be50d350e9c25fc106b0bc4155ee76d24ebce43a
|
4
|
+
data.tar.gz: dda78a4ca0bae941f2c1357a0d443ff50ecc06e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8e5ebae513b256ed1fc3f55851f8ad572753dce377b68fca8009376f1ab65cc73ba1aae3e4684d0523bf1e1bc900eadd741117de802931643a967357d0100ba
|
7
|
+
data.tar.gz: 39641e3dc44246592f5e980da926c5a69b754f0d51fb5d6c8497878d6b1475e93bd5a91fd10856660538e33c29df4e098dac6e65a93e44cca1824e3bc3d9b8fa
|
data/lib/zendesk2/client/mock.rb
CHANGED
@@ -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
|
@@ -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"].
|
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.
|
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
|
@@ -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
|
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?
|
@@ -14,7 +14,8 @@ class Zendesk2::Client
|
|
14
14
|
def destroy_membership(params={})
|
15
15
|
id = params["id"]
|
16
16
|
|
17
|
-
body = self.
|
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
|
16
|
-
body = self.
|
15
|
+
id = require_parameters(params, "id")
|
16
|
+
body = self.delete!(:organizations, id)
|
17
17
|
|
18
18
|
response(
|
19
19
|
:method => :delete,
|
@@ -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.
|
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.
|
23
|
+
body = self.delete!(:users, id)
|
26
24
|
|
27
25
|
response(
|
28
26
|
: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
|
-
|
21
|
-
|
20
|
+
body = self.delete!(:identities, id)
|
21
|
+
|
22
22
|
response(
|
23
23
|
:method => :delete,
|
24
24
|
:path => path,
|
@@ -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
|
@@ -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")
|
15
|
+
id = require_parameters(params, "id")
|
16
16
|
|
17
|
-
identities = self.data[:identities].values.select { |i| i["user_id"] == id }
|
18
|
-
|
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" =>
|
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
|
@@ -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.
|
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.
|
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.
|
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
|
-
|
18
|
-
body
|
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/#{
|
22
|
+
:path => "/ticket_fields/#{id}.json",
|
23
23
|
:body => {
|
24
24
|
"ticket_field" => body
|
25
25
|
},
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class Zendesk2::Client
|
2
2
|
class Real
|
3
|
-
def update_user(
|
4
|
-
|
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.
|
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.
|
23
|
+
body = self.find!(:identities, id).merge!(Cistern::Hash.slice(params, "verified"))
|
24
24
|
response(
|
25
25
|
:method => :put,
|
26
26
|
:path => path,
|
data/lib/zendesk2/version.rb
CHANGED
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
|
-
|
20
|
-
|
21
|
-
client.create_user(email: mock_email, name: "
|
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:
|
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
|
-
|
35
|
-
|
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:
|
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
|
-
|
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.
|
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-
|
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:
|