zendesk2 1.2.9 → 1.2.10

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