zendesk2 1.2.9 → 1.2.10

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: be50d350e9c25fc106b0bc4155ee76d24ebce43a
4
- data.tar.gz: dda78a4ca0bae941f2c1357a0d443ff50ecc06e1
3
+ metadata.gz: c07f86f5133eeb2a08c320e2d5c01b1346187d0c
4
+ data.tar.gz: 97a882ccf6edb6d90f371603c61d0b54d00c4edb
5
5
  SHA512:
6
- metadata.gz: c8e5ebae513b256ed1fc3f55851f8ad572753dce377b68fca8009376f1ab65cc73ba1aae3e4684d0523bf1e1bc900eadd741117de802931643a967357d0100ba
7
- data.tar.gz: 39641e3dc44246592f5e980da926c5a69b754f0d51fb5d6c8497878d6b1475e93bd5a91fd10856660538e33c29df4e098dac6e65a93e44cca1824e3bc3d9b8fa
6
+ metadata.gz: 0221b1a52704b3572c01245d8903f4600500d93263a9128e24890b1eda336aa381fc94fba66f9f94b9c35e65c8b37240c98432bc88dbf623ad0054880fc44be8
7
+ data.tar.gz: fa22d5464a2b93c559558f3f19b709a7fcbd45ec1dad93920ce51c2eee1a027043cc915c21703d68df2222bbef686e34ee9c3742d05002973b8461d7b4b166a3
@@ -73,11 +73,13 @@ class Zendesk2::Client
73
73
  }.merge(params)
74
74
 
75
75
  record["requester_id"] ||= (requester_id && requester_id.to_s) || current_user["id"].to_s
76
+ requester = self.find!(:users, record["requester_id"])
77
+
76
78
  record["submitter_id"] = current_user["id"].to_s
77
79
 
78
- # FIXME: throw error if user doesn't exist?
79
- requester = self.find!(:users, record["requester_id"])
80
- record["organization_id"] = requester["organization_id"]
80
+ if record["organization_id"] = params.delete('organization_id') || requester["organization_id"]
81
+ self.find!(:organizations, record["organization_id"])
82
+ end
81
83
 
82
84
  self.data[:tickets][identity] = record
83
85
 
@@ -15,6 +15,11 @@ class Zendesk2::Client
15
15
  user_id = self.class.new_id
16
16
  path = "/users.json"
17
17
 
18
+ if organization_id = params.delete("organization_id")
19
+ self.find!(:organizations, organization_id)
20
+ params["organization_id"] = organization_id.to_s
21
+ end
22
+
18
23
  record = {
19
24
  "id" => user_id,
20
25
  "url" => url_for("/users/#{user_id}.json"),
@@ -1,23 +1,25 @@
1
1
  class Zendesk2::Client
2
2
  class Real
3
3
  def get_organization_tickets(params={})
4
- id = params["id"]
4
+ id = require_parameters(params, "id").to_s
5
5
  page_params = Zendesk2.paging_parameters(params)
6
6
 
7
7
  request(
8
- :params => page_params,
9
- :method => :get,
10
- :path => "/organizations/#{id}/tickets.json",
8
+ :params => page_params,
9
+ :method => :get,
10
+ :path => "/organizations/#{id}/tickets.json",
11
11
  )
12
12
  end
13
13
  end # Real
14
14
 
15
15
  class Mock
16
16
  def get_organization_tickets(params={})
17
- id = params["id"]
17
+ id = require_parameters(params, "id").to_s
18
18
 
19
- requesters = self.data[:users].values.select{|u| u["organization_id"] == id}.map{|s| s["organization_id"]}
20
- page(params, :tickets, "/organizations/#{id}/tickets.json", "tickets", filter: lambda{|c| c.select{|u| requesters.include?(u["organization_id"])}})
19
+ requesters = self.data[:users].values.select { |u| u["organization_id"] == id }.map { |s| s["organization_id"].to_s }
20
+ page(params, :tickets, "/organizations/#{id}/tickets.json", "tickets",
21
+ :filter => lambda { |c| c.select { |u| requesters.include?(u["organization_id"].to_s) } }
22
+ )
21
23
  end
22
24
  end # Mock
23
25
  end
@@ -1,7 +1,7 @@
1
1
  class Zendesk2::Client
2
2
  class Real
3
3
  def get_organization_users(params={})
4
- id = params["id"]
4
+ id = require_parameters(params, "id").to_s
5
5
  page_params = Zendesk2.paging_parameters(params)
6
6
 
7
7
  request(
@@ -14,8 +14,11 @@ class Zendesk2::Client
14
14
 
15
15
  class Mock
16
16
  def get_organization_users(params={})
17
- id = params["id"]
18
- page(params, :users, "/organizations/#{id}/users.json", "users", filter: lambda{|c| c.select{|u| u["organization_id"] == id}})
17
+ id = require_parameters(params, "id").to_s
18
+
19
+ page(params, :users, "/organizations/#{id}/users.json", "users",
20
+ :filter => lambda { |c| c.select { |u| u["organization_id"].to_s == id } }
21
+ )
19
22
  end
20
23
  end # Mock
21
24
  end
@@ -1,3 +1,3 @@
1
1
  module Zendesk2
2
- VERSION = "1.2.9"
2
+ VERSION = "1.2.10"
3
3
  end
data/spec/tickets_spec.rb CHANGED
@@ -20,10 +20,11 @@ describe "Zendesk2::Client" do
20
20
  end
21
21
 
22
22
  describe "when creating a ticket" do
23
- let!(:requester_email) { "#{mock_uuid}@example.org" }
24
-
25
23
  it "should create requester" do
24
+ requester_email = mock_email
25
+
26
26
  ticket = client.tickets.create!(subject: mock_uuid, description: mock_uuid, requester: {name: "Josh Lane", email: requester_email})
27
+
27
28
  if Zendesk2::Client.mocking? # this takes some time for realsies
28
29
  requester = client.users.search(email: requester_email).first
29
30
  expect(requester).not_to be_nil
@@ -34,9 +35,25 @@ describe "Zendesk2::Client" do
34
35
  end
35
36
  end
36
37
 
38
+ it "should require a valid organization if not blank" do
39
+ expect {
40
+ client.tickets.create!(subject: mock_uuid, description: mock_uuid, organization_id: -1)
41
+ }.to raise_exception(Zendesk2::Error, /RecordNotFound/)
42
+ end
43
+
44
+ it "should default to the requesters primary organization if organization is not specified" do
45
+ organization = client.organizations.create!(name: mock_uuid)
46
+ requester = client.users.create!(email: mock_email, name: mock_uuid, organization: organization)
47
+
48
+ ticket = client.tickets.create!(requester: requester, subject: mock_uuid, description: mock_uuid)
49
+
50
+ expect(ticket.organization).to eq(organization)
51
+ expect(organization.tickets).to contain_exactly(ticket)
52
+ end
53
+
37
54
  it "should require requester name" do
38
55
  expect {
39
- client.tickets.create!(subject: mock_uuid, description: mock_uuid, requester: {email: requester_email})
56
+ client.tickets.create!(subject: mock_uuid, description: mock_uuid, requester: {email: mock_email})
40
57
  }.to raise_exception(Zendesk2::Error, /Requester Name: .* too short/)
41
58
  end
42
59
 
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.9
4
+ version: 1.2.10
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-23 00:00:00.000000000 Z
11
+ date: 2014-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -308,3 +308,4 @@ 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: