zendesk2 1.2.2 → 1.2.3

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 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