zendesk2 0.2.5 → 0.2.6
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.
data/lib/zendesk2/attributes.rb
CHANGED
@@ -3,14 +3,21 @@ module Zendesk2::Attributes
|
|
3
3
|
assoc_key = options[:key] || "#{name}_id"
|
4
4
|
collection = options[:collection] || "#{name}s"
|
5
5
|
define_method(name) do
|
6
|
-
self.
|
6
|
+
if assoc_id = self.send(assoc_key)
|
7
|
+
self.connection.send(collection).get(assoc_id)
|
8
|
+
else self.instance_variable_get("@#{name}")
|
9
|
+
end
|
7
10
|
end
|
8
11
|
end
|
9
12
|
|
10
13
|
def assoc_writer(name, options={})
|
11
14
|
assoc_key = options[:key] || "#{name}_id"
|
12
15
|
define_method("#{name}=") do |assoc|
|
13
|
-
|
16
|
+
if assoc.is_a?(Cistern::Model)
|
17
|
+
self.send("#{assoc_key}=", assoc.identity)
|
18
|
+
else
|
19
|
+
self.instance_variable_set("@#{name}", assoc)
|
20
|
+
end
|
14
21
|
end
|
15
22
|
end
|
16
23
|
|
@@ -66,7 +66,10 @@ class Zendesk2::Client::Ticket < Zendesk2::Model
|
|
66
66
|
def save!
|
67
67
|
data = if new_record?
|
68
68
|
requires :subject, :description
|
69
|
-
|
69
|
+
|
70
|
+
with_requester = @requester && Zendesk2.stringify_keys(@requester)
|
71
|
+
|
72
|
+
connection.create_ticket(params.merge("requester" => with_requester)).body["ticket"]
|
70
73
|
else
|
71
74
|
requires :identity
|
72
75
|
connection.update_ticket(params.merge("id" => self.identity)).body["ticket"]
|
@@ -109,7 +112,7 @@ class Zendesk2::Client::Ticket < Zendesk2::Model
|
|
109
112
|
|
110
113
|
# @return [Zendesk2::Client::TicketAudits] all audits for this ticket
|
111
114
|
def audits
|
112
|
-
self.connection.ticket_audits(:
|
115
|
+
self.connection.ticket_audits(ticket_id: self.identity).all
|
113
116
|
end
|
114
117
|
|
115
118
|
# @return [Array<Zendesk2::Client::AuditEvent>] audit events of type 'Comment'
|
@@ -13,6 +13,17 @@ class Zendesk2::Client
|
|
13
13
|
def create_ticket(params={})
|
14
14
|
identity = self.class.new_id
|
15
15
|
|
16
|
+
if requester = params.delete('requester')
|
17
|
+
user_id = if known_user = self.users.search(email: requester['email']).first
|
18
|
+
known_user.identity
|
19
|
+
else
|
20
|
+
# name is not required in this case
|
21
|
+
create_user(requester).body["user"]["id"]
|
22
|
+
end
|
23
|
+
|
24
|
+
params['requester_id'] = user_id
|
25
|
+
end
|
26
|
+
|
16
27
|
record = {
|
17
28
|
"id" => identity,
|
18
29
|
"url" => url_for("/tickets/#{identity}.json"),
|
data/lib/zendesk2/version.rb
CHANGED
data/spec/tickets_spec.rb
CHANGED
@@ -2,11 +2,23 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe "tickets" do
|
4
4
|
let(:client) { create_client }
|
5
|
-
it_should_behave_like "a resource",
|
5
|
+
it_should_behave_like "a resource",
|
6
6
|
:tickets,
|
7
7
|
lambda { {subject: Zendesk2.uuid, description: Zendesk2.uuid} },
|
8
8
|
lambda { {subject: Zendesk2.uuid} }
|
9
9
|
|
10
|
+
describe "when creating a ticket" do
|
11
|
+
let!(:requester_email) { "newuser@example.org" }
|
12
|
+
let!(:ticket) { client.tickets.create(subject: Zendesk2.uuid, description: Zendesk2.uuid, requester: {email: requester_email}) }
|
13
|
+
|
14
|
+
it "should create requester" do
|
15
|
+
requester = client.users.search(email: requester_email).first
|
16
|
+
requester.should_not be_nil
|
17
|
+
|
18
|
+
ticket.requester.should == requester
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
10
22
|
describe "with a created ticket" do
|
11
23
|
let(:ticket) { client.tickets.create(subject: Zendesk2.uuid, description: Zendesk2.uuid) }
|
12
24
|
it "should get requester" do
|
metadata
CHANGED
@@ -1,24 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.6
|
4
5
|
prerelease:
|
5
|
-
version: 0.2.5
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Josh Lane
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cistern
|
16
|
-
version_requirements: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 0.2.0
|
22
16
|
requirement: !ruby/object:Gem::Requirement
|
23
17
|
none: false
|
24
18
|
requirements:
|
@@ -27,14 +21,14 @@ dependencies:
|
|
27
21
|
version: 0.2.0
|
28
22
|
type: :runtime
|
29
23
|
prerelease: false
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: faraday
|
32
24
|
version_requirements: !ruby/object:Gem::Requirement
|
33
25
|
none: false
|
34
26
|
requirements:
|
35
|
-
- -
|
27
|
+
- - ~>
|
36
28
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
29
|
+
version: 0.2.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: faraday
|
38
32
|
requirement: !ruby/object:Gem::Requirement
|
39
33
|
none: false
|
40
34
|
requirements:
|
@@ -43,14 +37,14 @@ dependencies:
|
|
43
37
|
version: '0'
|
44
38
|
type: :runtime
|
45
39
|
prerelease: false
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: faraday_middleware
|
48
40
|
version_requirements: !ruby/object:Gem::Requirement
|
49
41
|
none: false
|
50
42
|
requirements:
|
51
43
|
- - ! '>='
|
52
44
|
- !ruby/object:Gem::Version
|
53
45
|
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: faraday_middleware
|
54
48
|
requirement: !ruby/object:Gem::Requirement
|
55
49
|
none: false
|
56
50
|
requirements:
|
@@ -59,14 +53,14 @@ dependencies:
|
|
59
53
|
version: '0'
|
60
54
|
type: :runtime
|
61
55
|
prerelease: false
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: addressable
|
64
56
|
version_requirements: !ruby/object:Gem::Requirement
|
65
57
|
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: addressable
|
70
64
|
requirement: !ruby/object:Gem::Requirement
|
71
65
|
none: false
|
72
66
|
requirements:
|
@@ -75,14 +69,14 @@ dependencies:
|
|
75
69
|
version: '0'
|
76
70
|
type: :runtime
|
77
71
|
prerelease: false
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: jwt
|
80
72
|
version_requirements: !ruby/object:Gem::Requirement
|
81
73
|
none: false
|
82
74
|
requirements:
|
83
75
|
- - ! '>='
|
84
76
|
- !ruby/object:Gem::Version
|
85
77
|
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: jwt
|
86
80
|
requirement: !ruby/object:Gem::Requirement
|
87
81
|
none: false
|
88
82
|
requirements:
|
@@ -91,6 +85,12 @@ dependencies:
|
|
91
85
|
version: '0'
|
92
86
|
type: :runtime
|
93
87
|
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
94
|
description: Zendesk V2 API client
|
95
95
|
email:
|
96
96
|
- me@joshualane.com
|