Class: Zendesk::Ticket
Constant Summary
Constants included
from Constants
Constants::PRIORITY, Constants::RESTRICTION, Constants::ROLE, Constants::STATUS, Constants::TICKET_TYPE, Constants::VIA
Instance Method Summary
collapse
Methods included from RestObject
included
Methods inherited from Resource
create, #load_data
Methods included from Properties
included
Constructor Details
#initialize(attrs = {}) ⇒ Ticket
Returns a new instance of Ticket.
14
15
16
17
18
19
|
# File 'lib/zendesk/ticket.rb', line 14
def initialize(attrs = {})
@comments = []
load_fields
self.tags= attrs[:tags] || attrs['tags']
super
end
|
Instance Method Details
47
48
49
50
51
52
53
|
# File 'lib/zendesk/ticket.rb', line 47
def (value, is_public = true)
if Zendesk::Comment.create(:ticket_id => self.id, :value => value, :is_public => is_public)
reload
else
false
end
end
|
32
33
34
35
36
37
|
# File 'lib/zendesk/ticket.rb', line 32
def (data)
@comments = []
data[:comments].each do ||
@comments << Zendesk::Comment.new([:comment])
end
end
|
#load_field_entries(data) ⇒ Object
Filling custom field methods from imported data. If field is not pointed in config it will be missed
23
24
25
26
27
28
29
30
|
# File 'lib/zendesk/ticket.rb', line 23
def load_field_entries(data)
if data[:ticket_field_entries]
data[:ticket_field_entries].each do |field_entry|
method_name = @field_ids.index(field_entry[:ticket_field_entry][:ticket_field_id])
send("#{method_name}=", field_entry[:ticket_field_entry][:value]) if method_name
end
end
end
|
#load_fields ⇒ Object
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/zendesk/ticket.rb', line 83
def load_fields
attr_keys = Zendesk.config['ticket'] || {}
@field_ids = {}
field_names = attr_keys.keys
unless field_names.empty?
field_names = field_names.map(&:to_sym)
attr_keys.keys.each do |attr_name|
@field_ids[attr_name.to_sym] = attr_keys[attr_name]
end
field_names.each{ |field_name| self.class.attributes field_name.to_sym }
end
end
|
75
76
77
|
# File 'lib/zendesk/ticket.rb', line 75
def tags
@current_tags.try(:split)
end
|
79
80
81
|
# File 'lib/zendesk/ticket.rb', line 79
def tags=(tags)
@current_tags = tags.is_a?(Array) ? tags.to_a.join(' ') : tags
end
|
#to_xml ⇒ Object
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/zendesk/ticket.rb', line 55
def to_xml
result = {}
(attributes - @field_ids.keys).each do |obj|
if val = instance_variable_get(:"@#{obj.to_s}")
result[obj.to_s.downcase] = val
end
end
ticket_field_entries = []
@field_ids.each_pair do |key, value|
if val = instance_variable_get(:"@#{key.to_s}")
ticket_field_entries << { :ticket_field_entry => { :ticket_field_id => value, :value => val.to_s } }
end
end
result[:ticket_field_entries] = ticket_field_entries unless ticket_field_entries.empty?
result[:set_tags] = current_tags if current_tags
Zendesk.xml_out({:ticket => result})
end
|
#user ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/zendesk/ticket.rb', line 39
def user
if assignee_id
@user ||= Zendesk::User.find(assignee_id)
else
@user = nil
end
end
|