zendesk2 1.2.2 → 1.2.3

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: 81bba9f58f738ec52054105fc508707dd9a7223b
4
- data.tar.gz: 017e53e26dd7ba508aacd23094f96f966da76136
3
+ metadata.gz: 2a5501867637d62174442f46e0f9119117c5b36b
4
+ data.tar.gz: a9242b5fe3c07db88175db6254be1fa1a2b4766f
5
5
  SHA512:
6
- metadata.gz: ab3815ee90b96f12fce67acf78a7aeed1fb90a98e52bf88d9dc246ecc085228b4dd587d2216b844107fb67ecdbe18979eae2e8658aabd46364ebd39d2bd459f5
7
- data.tar.gz: dc2b8a2b14a1fac2179beb6b941aedae05b05289dd9cfa4ac984889f0ec68a7ece263e5130805ef53083e6d0295474efd0d3b460de9628ab3ed853006eea4bf4
6
+ metadata.gz: f3d724891660d349ec816798a226deddfe4a9cfbf4eed4f572b25678f981427f720e6ab0973213b1e89ffeefe9834f58b0495755055744606793e2889df4bf19
7
+ data.tar.gz: 04bbf03267e9ad8a67502d9da874be66735b6069ad2faf67059d7b8f1c7df63b211a33d1272f047110ecc0ca053d1f34aa87d95e46a5d52503de0bdb11112ee6
@@ -17,45 +17,33 @@ class Zendesk2::Client
17
17
  user_id = params.delete("id")
18
18
  path = "/users/#{user_id}.json"
19
19
 
20
- if (email = params["email"]) && self.data[:identities].find{|k,i| i["type"] == "email" && i["value"] == email}
21
- response(
22
- :method => :put,
23
- :path => path,
24
- :status => 422,
25
- :body => {
26
- "error" => "RecordInvalid",
27
- "description" => "Record validation errors", "details" => {
28
- "email" => [ {
29
- "description" => "Email #{params["email"]} is already being used by another user"
30
- } ]
31
- }
32
- }
33
- )
34
- else
35
- user_identity_id = self.class.new_id # ugh
20
+ if (email = params["email"]) && self.data[:identities].find { |k,i| i["type"] == "email" && i["value"] == email && i["user_id"] != user_id }
21
+ error!(:invalid, details: {"email" => [ { "description" => "Email #{params["email"]} is already being used by another user" } ] })
22
+ end
36
23
 
37
- user_identity = {
38
- "id" => user_identity_id,
39
- "url" => url_for("/users/#{user_id}/identities/#{user_identity_id}.json"),
40
- "created_at" => Time.now.iso8601,
41
- "updated_at" => Time.now.iso8601,
42
- "type" => "email",
43
- "value" => params["email"],
44
- "verified" => false,
45
- "primary" => false,
46
- "user_id" => user_id,
47
- }
24
+ user_identity_id = self.class.new_id # ugh
48
25
 
49
- self.data[:identities][user_identity_id] = user_identity
50
- body = self.data[:users][user_id].merge!(params)
51
- response(
52
- :method => :put,
53
- :path => path,
54
- :body => {
55
- "user" => body
56
- },
57
- )
58
- end
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
+ body = self.data[:users][user_id].merge!(params)
40
+ response(
41
+ :method => :put,
42
+ :path => path,
43
+ :body => {
44
+ "user" => body
45
+ },
46
+ )
59
47
  end
60
48
  end
61
49
  end
@@ -1,3 +1,3 @@
1
1
  module Zendesk2
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3"
3
3
  end
data/spec/users_spec.rb CHANGED
@@ -31,7 +31,7 @@ describe "users" do
31
31
  end
32
32
  end
33
33
 
34
- describe do
34
+ describe "#save" do
35
35
  before(:each) do
36
36
  @user = client.users.create!(email: "zendesk2+#{Zendesk2.uuid}@example.org", name: Zendesk2.uuid)
37
37
  end
@@ -39,26 +39,27 @@ describe "users" do
39
39
  let(:user) { @user }
40
40
 
41
41
  it "should update organization" do
42
- organization = client.organizations.create(name: Zendesk2.uuid)
43
- user.organization= organization
44
- expect(user.save).to be_truthy
42
+ user.organization = organization = client.organizations.create!(name: Zendesk2.uuid)
43
+
44
+ user.save!
45
+
45
46
  expect(user.organization).to eq(organization)
46
47
  end
47
48
 
48
49
  it "should get requested tickets" do
49
- ticket = client.tickets.create(requester: user, subject: Zendesk2.uuid, description: Zendesk2.uuid)
50
+ ticket = client.tickets.create!(requester: user, subject: Zendesk2.uuid, description: Zendesk2.uuid)
50
51
 
51
52
  expect(user.requested_tickets).to include ticket
52
53
  end
53
54
 
54
55
  it "should get ccd tickets", mock_only: true do
55
- ticket = client.tickets.create(collaborators: [user], subject: Zendesk2.uuid, description: Zendesk2.uuid)
56
+ ticket = client.tickets.create!(collaborators: [user], subject: Zendesk2.uuid, description: Zendesk2.uuid)
56
57
 
57
58
  expect(user.ccd_tickets).to include ticket
58
59
  end
59
60
 
60
61
  it "cannot destroy a user with a ticket" do
61
- client.tickets.create(requester: user, subject: Zendesk2.uuid, description: Zendesk2.uuid)
62
+ client.tickets.create!(requester: user, subject: Zendesk2.uuid, description: Zendesk2.uuid)
62
63
 
63
64
  expect(user.destroy).to be_falsey
64
65
 
@@ -114,10 +115,12 @@ describe "users" do
114
115
 
115
116
  it "should hate non-unique emails" do
116
117
  email = "zendesk2+#{Zendesk2.uuid}@example.org"
117
- client.users.create(email: email, name: Zendesk2.uuid)
118
+ client.users.create!(email: email, name: Zendesk2.uuid)
118
119
  expect { client.users.create!(email: email, name: Zendesk2.uuid) }.to raise_exception(Zendesk2::Error)
120
+
119
121
  user = client.users.create(email: email, name: Zendesk2.uuid)
120
- expect(user.identity).to be_falsey
122
+
123
+ expect(user.identity).to eq(nil)
121
124
  expect(user.errors).to eq({"email" => ["Email: #{email} is already being used by another user"]})
122
125
  end
123
126
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lane