zendesk2 1.2.3 → 1.2.4
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 +4 -4
- data/lib/zendesk2/client/requests/get_user_identities.rb +3 -3
- data/lib/zendesk2/client/requests/update_user.rb +29 -17
- data/lib/zendesk2/version.rb +1 -1
- data/spec/users_spec.rb +16 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 930984502b3ffcce83fd01762bb8d48a07d760d5
|
4
|
+
data.tar.gz: 901281d2b7f73eeedbb0405ab259f62d6ab920aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f642fe7199612809c97ec24c1f3a680ac33a270944d4205c6316bf4a6a4429224f0b09d331f1af5b4d671345b1450029be7af405d96471fadfb12064d277fa40
|
7
|
+
data.tar.gz: 76141a4780845418663435b0ef1cd769d0fe5ba5cbcc277d31df3c8978587c5f497d3802e75e1b32497bcf5e6e627c97565241ce59e90b5c8c4fe7da917dbfe3
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Zendesk2::Client
|
2
2
|
class Real
|
3
3
|
def get_user_identities(params={})
|
4
|
-
user_id
|
4
|
+
user_id = require_parameters(params, "user_id")
|
5
5
|
page_params = Zendesk2.paging_parameters(params)
|
6
6
|
|
7
7
|
request(
|
@@ -14,9 +14,9 @@ class Zendesk2::Client
|
|
14
14
|
|
15
15
|
class Mock
|
16
16
|
def get_user_identities(params={})
|
17
|
-
user_id = params
|
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"] == user_id } })
|
20
20
|
end
|
21
21
|
end # Mock
|
22
22
|
end
|
@@ -17,25 +17,36 @@ class Zendesk2::Client
|
|
17
17
|
user_id = params.delete("id")
|
18
18
|
path = "/users/#{user_id}.json"
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
email = params["email"]
|
21
|
+
|
22
|
+
existing_identity = self.data[:identities].values.find { |i| i["type"] == "email" && i["value"] == email }
|
23
|
+
|
24
|
+
if existing_identity && existing_identity["user_id"] != user_id
|
25
|
+
# email not allowed to conflict across users
|
26
|
+
error!(:invalid, details: { "email" => [ {
|
27
|
+
"description" => "Email #{params["email"]} is already being used by another user",
|
28
|
+
} ] })
|
29
|
+
elsif existing_identity && existing_identity["user_id"] == user_id
|
30
|
+
# no-op email already used
|
31
|
+
else
|
32
|
+
# add a new identity
|
33
|
+
user_identity_id = self.class.new_id # ugh
|
34
|
+
|
35
|
+
user_identity = {
|
36
|
+
"id" => user_identity_id,
|
37
|
+
"url" => url_for("/users/#{user_id}/identities/#{user_identity_id}.json"),
|
38
|
+
"created_at" => Time.now.iso8601,
|
39
|
+
"updated_at" => Time.now.iso8601,
|
40
|
+
"type" => "email",
|
41
|
+
"value" => email,
|
42
|
+
"verified" => false,
|
43
|
+
"primary" => false,
|
44
|
+
"user_id" => user_id,
|
45
|
+
}
|
46
|
+
|
47
|
+
self.data[:identities][user_identity_id] = user_identity
|
22
48
|
end
|
23
49
|
|
24
|
-
user_identity_id = self.class.new_id # ugh
|
25
|
-
|
26
|
-
user_identity = {
|
27
|
-
"id" => user_identity_id,
|
28
|
-
"url" => url_for("/users/#{user_id}/identities/#{user_identity_id}.json"),
|
29
|
-
"created_at" => Time.now.iso8601,
|
30
|
-
"updated_at" => Time.now.iso8601,
|
31
|
-
"type" => "email",
|
32
|
-
"value" => params["email"],
|
33
|
-
"verified" => false,
|
34
|
-
"primary" => false,
|
35
|
-
"user_id" => user_id,
|
36
|
-
}
|
37
|
-
|
38
|
-
self.data[:identities][user_identity_id] = user_identity
|
39
50
|
body = self.data[:users][user_id].merge!(params)
|
40
51
|
response(
|
41
52
|
:method => :put,
|
@@ -44,6 +55,7 @@ class Zendesk2::Client
|
|
44
55
|
"user" => body
|
45
56
|
},
|
46
57
|
)
|
58
|
+
|
47
59
|
end
|
48
60
|
end
|
49
61
|
end
|
data/lib/zendesk2/version.rb
CHANGED
data/spec/users_spec.rb
CHANGED
@@ -32,11 +32,7 @@ describe "users" do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
describe "#save" do
|
35
|
-
|
36
|
-
@user = client.users.create!(email: "zendesk2+#{Zendesk2.uuid}@example.org", name: Zendesk2.uuid)
|
37
|
-
end
|
38
|
-
|
39
|
-
let(:user) { @user }
|
35
|
+
let!(:user) { client.users.create!(email: "zendesk2+#{Zendesk2.uuid}@example.org", name: Zendesk2.uuid) }
|
40
36
|
|
41
37
|
it "should update organization" do
|
42
38
|
user.organization = organization = client.organizations.create!(name: Zendesk2.uuid)
|
@@ -125,22 +121,29 @@ describe "users" do
|
|
125
121
|
end
|
126
122
|
|
127
123
|
it "should create another identity when updating email" do
|
124
|
+
expect(user.identities.size).to eq(1)
|
125
|
+
|
128
126
|
original_email = user.email
|
129
127
|
user.email = (new_email = "zendesk2+#{Zendesk2.uuid}@example.org")
|
130
|
-
user.save!
|
131
128
|
|
132
|
-
expect
|
133
|
-
|
134
|
-
|
129
|
+
expect {
|
130
|
+
user.save!
|
131
|
+
}.to change { user.identities.size }.by(1)
|
135
132
|
|
136
|
-
|
133
|
+
new_identity = user.identities.find { |i| i.value == new_email }
|
137
134
|
|
138
|
-
|
139
|
-
expect(
|
135
|
+
expect(new_identity).to be
|
136
|
+
expect(new_identity.primary).to eq(false)
|
140
137
|
|
141
|
-
|
138
|
+
original_identity = user.identities.find { |i| i.value == original_email }
|
142
139
|
|
140
|
+
expect(original_identity).to be
|
141
|
+
expect(original_identity.primary).to eq(true)
|
143
142
|
expect(user.reload.email).to eq(original_email)
|
143
|
+
|
144
|
+
expect {
|
145
|
+
user.save!
|
146
|
+
}.not_to change { user.identities.size }
|
144
147
|
end
|
145
148
|
|
146
149
|
it "should form 'legacy' login url" do
|
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.4
|
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-
|
11
|
+
date: 2014-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|