taskmapper-zendesk 0.5.0
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/.DS_Store +0 -0
- data/.rbenv-gemsets +1 -0
- data/.rvmrc +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +15 -0
- data/Gemfile.lock +51 -0
- data/LICENSE +22 -0
- data/README.md +67 -0
- data/Rakefile +41 -0
- data/VERSION +1 -0
- data/lib/.DS_Store +0 -0
- data/lib/provider/comment.rb +74 -0
- data/lib/provider/project.rb +58 -0
- data/lib/provider/ticket.rb +97 -0
- data/lib/provider/zendesk.rb +40 -0
- data/lib/taskmapper-zendesk.rb +6 -0
- data/lib/zendesk/zendesk-api.rb +52 -0
- data/spec/.DS_Store +0 -0
- data/spec/comments_spec.rb +55 -0
- data/spec/fixtures/.DS_Store +0 -0
- data/spec/fixtures/ticket.json +1 -0
- data/spec/fixtures/tickets.json +1 -0
- data/spec/fixtures/tickets.xml +145 -0
- data/spec/fixtures/tickets/2.xml +52 -0
- data/spec/fixtures/tickets/5.xml +78 -0
- data/spec/fixtures/tickets/create.xml +24 -0
- data/spec/fixtures/users/55030073.json +1 -0
- data/spec/projects_spec.rb +29 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/taskmapper-zendesk_spec.rb +22 -0
- data/spec/tickets_spec.rb +59 -0
- data/taskmapper-zendesk.gemspec +86 -0
- metadata +152 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'taskmapper'
|
2
|
+
module TaskMapper::Provider
|
3
|
+
# This is the Zendesk Provider for taskmapper
|
4
|
+
module Zendesk
|
5
|
+
include TaskMapper::Provider::Base
|
6
|
+
#PROJECT_API = ZendeskAPI::Organization
|
7
|
+
|
8
|
+
# This is for cases when you want to instantiate using TaskMapper::Provider::Yoursystem.new(auth)
|
9
|
+
def self.new(auth = {})
|
10
|
+
TaskMapper.new(:zendesk, auth)
|
11
|
+
end
|
12
|
+
|
13
|
+
# The authorize and initializer for this provider
|
14
|
+
def authorize(auth = {})
|
15
|
+
@authentication ||= TaskMapper::Authenticator.new(auth)
|
16
|
+
auth = @authentication
|
17
|
+
if (auth.account.nil? and auth.username.nil? and auth.password.nil?)
|
18
|
+
raise "Please provide at least an url (subdomain), username and password)"
|
19
|
+
end
|
20
|
+
ZendeskAPI.authenticate(auth.account, auth.username, auth.password)
|
21
|
+
end
|
22
|
+
|
23
|
+
def projects(*options)
|
24
|
+
[Project.new({:account => @authentication.account, :username => @authentication.username, :name => "#{@authentication.account}-project"})]
|
25
|
+
end
|
26
|
+
|
27
|
+
def project(*options)
|
28
|
+
unless options.empty?
|
29
|
+
Project.new({:account => @authentication.account, :username => @authentication.username, :name => "#{@authentication.account}-project"})
|
30
|
+
else
|
31
|
+
TaskMapper::Provider::Zendesk::Project
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def valid?
|
36
|
+
ZendeskAPI::Search.find(:first, :params => {:query => "status:open"})
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'active_support'
|
3
|
+
require 'active_resource'
|
4
|
+
|
5
|
+
module ZendeskAPI
|
6
|
+
class Error < StandardError; end
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def authenticate(account, username, password)
|
11
|
+
@username = username
|
12
|
+
@password = password
|
13
|
+
self::Base.user = username
|
14
|
+
self::Base.password = password
|
15
|
+
self::Base.site = "http://#{account}.zendesk.com"
|
16
|
+
end
|
17
|
+
|
18
|
+
def resources
|
19
|
+
@resources ||= []
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
class Base < ActiveResource::Base
|
25
|
+
self.format = :json
|
26
|
+
def self.inherited(base)
|
27
|
+
ZendeskAPI.resources << base
|
28
|
+
super
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class Search < Base
|
33
|
+
|
34
|
+
def self.collection_path(prefix_options = {}, query_options = nil)
|
35
|
+
prefix_options, query_options = split_options(prefix_options) if query_options.nil?
|
36
|
+
"#{prefix(prefix_options)}search.#{format.extension}#{query_string(query_options)}"
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.element_path(id, prefix_options = {}, query_options = nil)
|
40
|
+
prefix_options, query_options = split_options(prefix_options) if query_options.nil?
|
41
|
+
"#{prefix(prefix_options)}search.#{format.extension}#{query_string(query_options)}"
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
class Ticket < Base
|
47
|
+
end
|
48
|
+
|
49
|
+
class User < Base
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
data/spec/.DS_Store
ADDED
Binary file
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe TaskMapper::Provider::Zendesk::Comment do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
@project_id = 'hybridgroup-project'
|
7
|
+
@ticket_id = 1
|
8
|
+
headers = {'Authorization' => 'Basic cmFmYWVsQGh5YnJpZGdyb3VwLmNvbToxMjM0NTY=','Accept' => 'application/json'}
|
9
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
10
|
+
mock.get '/tickets/1.json', headers, fixture_for('ticket','json'), 200
|
11
|
+
mock.get '/users/26218414.json', headers, fixture_for('users/55030073', 'json'), 200
|
12
|
+
mock.get '/users/26220353.json', headers, fixture_for('users/55030073', 'json'), 200
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
before(:each) do
|
17
|
+
@taskmapper = TaskMapper.new(:zendesk, :account => 'hybridgroup', :username => 'rafael@hybridgroup.com', :password => '123456')
|
18
|
+
project = @taskmapper.project(@project_id)
|
19
|
+
@ticket = project.ticket(@ticket_id)
|
20
|
+
@klass = TaskMapper::Provider::Zendesk::Comment
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be able to load all comments" do
|
24
|
+
comments = @ticket.comments
|
25
|
+
comments.should be_an_instance_of(Array)
|
26
|
+
comments.first.should be_an_instance_of(@klass)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should be able to load all comments based on an array of id's" do
|
30
|
+
comments = @ticket.comments([1])
|
31
|
+
comments.should be_an_instance_of(Array)
|
32
|
+
comments.first.should be_an_instance_of(@klass)
|
33
|
+
comments.first.id.should == 1
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should be able to load all comments based on attributes" do
|
37
|
+
comments = @ticket.comments(:ticket_id => @ticket.id)
|
38
|
+
comments.should be_an_instance_of(Array)
|
39
|
+
comments.first.should be_an_instance_of(@klass)
|
40
|
+
comments.first.id.should == 1
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should be able to load a comment based on id" do
|
44
|
+
comment = @ticket.comment(1)
|
45
|
+
comment.should be_an_instance_of(@klass)
|
46
|
+
comment.id.should == 1
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should be able to load a ticket based on attributes" do
|
50
|
+
comment = @ticket.comment(:ticket_id => 1)
|
51
|
+
comment.should be_an_instance_of(@klass)
|
52
|
+
comment.id.should == 1
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
{"nice_id":1,"initially_assigned_at":"2011/01/31 14:09:12 -0400","entry_id":null,"created_at":"2011/01/31 14:09:12 -0400","resolution_time":null,"priority_id":1,"current_tags":null,"assignee_id":26218414,"channel":null,"updated_at":"2011/01/31 14:09:12 -0400","ticket_type_id":3,"status_updated_at":"2011/01/31 14:09:12 -0400","solved_at":null,"original_recipient_address":null,"external_id":null,"assigned_at":"2011/01/31 14:09:12 -0400","via_id":0,"subject":"Testing","recipient":null,"group_id":121752,"comments":[{"created_at":"2011/01/31 14:09:12 -0400","via_id":0,"value":"Testing","type":"Comment","is_public":true,"author_id":26218414,"attachments":[]}],"linkings":[],"submitter_id":26218414,"base_score":18,"latest_recipients":null,"due_date":null,"current_collaborators":null,"status_id":1,"description":"Testing","ticket_field_entries":[],"problem_id":null,"score":18,"organization_id":457249,"updated_by_type_id":0,"requester_id":26218414}
|
@@ -0,0 +1 @@
|
|
1
|
+
[{"nice_id":1,"initially_assigned_at":"2011/01/31 14:09:12 -0400","entry_id":null,"created_at":"2011/01/31 14:09:12 -0400","resolution_time":null,"priority_id":1,"current_tags":null,"assignee_id":26218414,"channel":null,"updated_at":"2011/01/31 14:09:12 -0400","ticket_type_id":3,"status_updated_at":"2011/01/31 14:09:12 -0400","solved_at":null,"original_recipient_address":null,"external_id":null,"assigned_at":"2011/01/31 14:09:12 -0400","via_id":0,"subject":"Testing","recipient":null,"group_id":121752,"comments":[{"created_at":"2011/01/31 14:09:12 -0400","via_id":0,"value":"Testing","type":"Comment","is_public":true,"author_id":26218414,"attachments":[]}],"linkings":[],"submitter_id":26218414,"base_score":18,"latest_recipients":null,"due_date":null,"current_collaborators":null,"status_id":1,"description":"Testing","ticket_field_entries":[],"problem_id":null,"score":18,"organization_id":457249,"updated_by_type_id":0,"requester_id":26218414},{"nice_id":2,"initially_assigned_at":"2011/01/31 14:30:31 -0400","entry_id":null,"created_at":"2011/01/31 14:30:31 -0400","resolution_time":null,"priority_id":0,"current_tags":null,"assignee_id":26218414,"channel":null,"updated_at":"2011/01/31 14:30:31 -0400","ticket_type_id":0,"status_updated_at":"2011/01/31 14:30:31 -0400","solved_at":null,"original_recipient_address":null,"external_id":null,"assigned_at":"2011/01/31 14:30:31 -0400","via_id":4,"subject":"Welcome to Zendesk, You've Got a Ticket!","recipient":"support@hybridgroup.zendesk.com","group_id":121752,"comments":[{"created_at":"2011/01/31 14:30:31 -0400","via_id":4,"value":"You've got a new ticket!\n\nTo help you get started learning how your zendesk simplifies ticket workflow, I emailed you at support@hybridgroup.zendesk.com and this ticket was created in your zendesk. Neat!\n\nYou can answer this ticket in one of two ways:\n\nBy Email: If you are looking at this in your email inbox, simply hit \"Reply\"\n\nBy Zendesk: If you are looking at this ticket in your zendesk:\n\n* Enter a comment (e.g. \"How am I doing?\")\n* Change status from Open to Pending (now, you’re waiting for me to get back to you!)\n* Click submit\n\nEither way, both your reply and follow-ups will be added to the ticket history and organized in your zendesk.\n\nYou’re eligible for 24-hour support throughout your trial. Please don’t hesitate to call or email our customer advocate team:\n\n*(e) support@zendesk.com\n*(p) +1 415.418.7506\n\nThank you for using Zendesk,\n\nKelly\nCustomer Advocate at Zendesk","type":"Comment","is_public":true,"author_id":26220353,"attachments":[]}],"linkings":[],"submitter_id":26220353,"base_score":108,"latest_recipients":null,"due_date":null,"current_collaborators":null,"status_id":1,"description":"You've got a new ticket!\n\nTo help you get started learning how your zendesk simplifies ticket workflow, I emailed you at support@hybridgroup.zendesk.com and this ticket was created in your zendesk. Neat!\n\nYou can answer this ticket in one of two ways:\n\nBy Email: If you are looking at this in your email inbox, simply hit \"Reply\"\n\nBy Zendesk: If you are looking at this ticket in your zendesk:\n\n* Enter a comment (e.g. \"How am I doing?\")\n* Change status from Open to Pending (now, you’re waiting for me to get back to you!)\n* Click submit\n\nEither way, both your reply and follow-ups will be added to the ticket history and organized in your zendesk.\n\nYou’re eligible for 24-hour support throughout your trial. Please don’t hesitate to call or email our customer advocate team:\n\n*(e) support@zendesk.com\n*(p) +1 415.418.7506\n\nThank you for using Zendesk,\n\nKelly\nCustomer Advocate at Zendesk","ticket_field_entries":[],"problem_id":null,"score":108,"organization_id":null,"updated_by_type_id":1,"requester_id":26220353}]
|
@@ -0,0 +1,145 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<records type="array" count="2">
|
3
|
+
<record>
|
4
|
+
<assigned-at type="datetime">2011-01-31T14:09:12-04:00</assigned-at>
|
5
|
+
<assignee-id type="integer">26218414</assignee-id>
|
6
|
+
<base-score type="integer">12</base-score>
|
7
|
+
<created-at type="datetime">2011-01-31T14:09:12-04:00</created-at>
|
8
|
+
<current-collaborators nil="true"></current-collaborators>
|
9
|
+
<current-tags nil="true"></current-tags>
|
10
|
+
<description>Testing</description>
|
11
|
+
<due-date type="datetime" nil="true"></due-date>
|
12
|
+
<entry-id type="integer" nil="true"></entry-id>
|
13
|
+
<external-id nil="true"></external-id>
|
14
|
+
<group-id type="integer">121752</group-id>
|
15
|
+
<initially-assigned-at type="datetime">2011-01-31T14:09:12-04:00</initially-assigned-at>
|
16
|
+
<latest-recipients nil="true"></latest-recipients>
|
17
|
+
<nice-id type="integer">1</nice-id>
|
18
|
+
<organization-id type="integer">457249</organization-id>
|
19
|
+
<original-recipient-address nil="true"></original-recipient-address>
|
20
|
+
<priority-id type="integer">1</priority-id>
|
21
|
+
<recipient nil="true"></recipient>
|
22
|
+
<requester-id type="integer">26218414</requester-id>
|
23
|
+
<resolution-time type="integer" nil="true"></resolution-time>
|
24
|
+
<solved-at type="datetime" nil="true"></solved-at>
|
25
|
+
<status-id type="integer">1</status-id>
|
26
|
+
<status-updated-at type="datetime">2011-01-31T14:09:12-04:00</status-updated-at>
|
27
|
+
<subject>Testing</subject>
|
28
|
+
<submitter-id type="integer">26218414</submitter-id>
|
29
|
+
<ticket-type-id type="integer">3</ticket-type-id>
|
30
|
+
<updated-at type="datetime">2011-01-31T14:09:12-04:00</updated-at>
|
31
|
+
<updated-by-type-id type="integer">0</updated-by-type-id>
|
32
|
+
<via-id type="integer">0</via-id>
|
33
|
+
<score type="integer">12</score>
|
34
|
+
<problem-id nil="true"></problem-id>
|
35
|
+
<comments type="array">
|
36
|
+
<comment>
|
37
|
+
<author-id type="integer">26218414</author-id>
|
38
|
+
<created-at type="datetime">2011-01-31T14:09:12-04:00</created-at>
|
39
|
+
<is-public type="boolean">true</is-public>
|
40
|
+
<type>Comment</type>
|
41
|
+
<value>Testing</value>
|
42
|
+
<via-id type="integer">0</via-id>
|
43
|
+
<attachments type="array"/>
|
44
|
+
</comment>
|
45
|
+
</comments>
|
46
|
+
<linkings type="array"/>
|
47
|
+
<ticket-field-entries type="array"/>
|
48
|
+
<channel nil="true"></channel>
|
49
|
+
</record>
|
50
|
+
<record>
|
51
|
+
<assigned-at type="datetime">2011-01-31T14:30:31-04:00</assigned-at>
|
52
|
+
<assignee-id type="integer">26218414</assignee-id>
|
53
|
+
<base-score type="integer">72</base-score>
|
54
|
+
<created-at type="datetime">2011-01-31T14:30:31-04:00</created-at>
|
55
|
+
<current-collaborators nil="true"></current-collaborators>
|
56
|
+
<current-tags nil="true"></current-tags>
|
57
|
+
<description>You've got a new ticket!
|
58
|
+
|
59
|
+
To help you get started learning how your zendesk simplifies ticket workflow, I emailed you at support@hybridgroup.zendesk.com and this ticket was created in your zendesk. Neat!
|
60
|
+
|
61
|
+
You can answer this ticket in one of two ways:
|
62
|
+
|
63
|
+
By Email: If you are looking at this in your email inbox, simply hit "Reply"
|
64
|
+
|
65
|
+
By Zendesk: If you are looking at this ticket in your zendesk:
|
66
|
+
|
67
|
+
* Enter a comment (e.g. "How am I doing?")
|
68
|
+
* Change status from Open to Pending (now, you’re waiting for me to get back to you!)
|
69
|
+
* Click submit
|
70
|
+
|
71
|
+
Either way, both your reply and follow-ups will be added to the ticket history and organized in your zendesk.
|
72
|
+
|
73
|
+
You’re eligible for 24-hour support throughout your trial. Please don’t hesitate to call or email our customer advocate team:
|
74
|
+
|
75
|
+
*(e) support@zendesk.com
|
76
|
+
*(p) +1 415.418.7506
|
77
|
+
|
78
|
+
Thank you for using Zendesk,
|
79
|
+
|
80
|
+
Kelly
|
81
|
+
Customer Advocate at Zendesk</description>
|
82
|
+
<due-date type="datetime" nil="true"></due-date>
|
83
|
+
<entry-id type="integer" nil="true"></entry-id>
|
84
|
+
<external-id nil="true"></external-id>
|
85
|
+
<group-id type="integer">121752</group-id>
|
86
|
+
<initially-assigned-at type="datetime">2011-01-31T14:30:31-04:00</initially-assigned-at>
|
87
|
+
<latest-recipients nil="true"></latest-recipients>
|
88
|
+
<nice-id type="integer">2</nice-id>
|
89
|
+
<organization-id type="integer" nil="true"></organization-id>
|
90
|
+
<original-recipient-address nil="true"></original-recipient-address>
|
91
|
+
<priority-id type="integer">0</priority-id>
|
92
|
+
<recipient>support@hybridgroup.zendesk.com</recipient>
|
93
|
+
<requester-id type="integer">26220353</requester-id>
|
94
|
+
<resolution-time type="integer" nil="true"></resolution-time>
|
95
|
+
<solved-at type="datetime" nil="true"></solved-at>
|
96
|
+
<status-id type="integer">1</status-id>
|
97
|
+
<status-updated-at type="datetime">2011-01-31T14:30:31-04:00</status-updated-at>
|
98
|
+
<subject>Welcome to Zendesk, You've Got a Ticket!</subject>
|
99
|
+
<submitter-id type="integer">26220353</submitter-id>
|
100
|
+
<ticket-type-id type="integer">0</ticket-type-id>
|
101
|
+
<updated-at type="datetime">2011-01-31T14:30:31-04:00</updated-at>
|
102
|
+
<updated-by-type-id type="integer">1</updated-by-type-id>
|
103
|
+
<via-id type="integer">4</via-id>
|
104
|
+
<score type="integer">72</score>
|
105
|
+
<problem-id nil="true"></problem-id>
|
106
|
+
<comments type="array">
|
107
|
+
<comment>
|
108
|
+
<author-id type="integer">26220353</author-id>
|
109
|
+
<created-at type="datetime">2011-01-31T14:30:31-04:00</created-at>
|
110
|
+
<is-public type="boolean">true</is-public>
|
111
|
+
<type>Comment</type>
|
112
|
+
<value>You've got a new ticket!
|
113
|
+
|
114
|
+
To help you get started learning how your zendesk simplifies ticket workflow, I emailed you at support@hybridgroup.zendesk.com and this ticket was created in your zendesk. Neat!
|
115
|
+
|
116
|
+
You can answer this ticket in one of two ways:
|
117
|
+
|
118
|
+
By Email: If you are looking at this in your email inbox, simply hit "Reply"
|
119
|
+
|
120
|
+
By Zendesk: If you are looking at this ticket in your zendesk:
|
121
|
+
|
122
|
+
* Enter a comment (e.g. "How am I doing?")
|
123
|
+
* Change status from Open to Pending (now, you’re waiting for me to get back to you!)
|
124
|
+
* Click submit
|
125
|
+
|
126
|
+
Either way, both your reply and follow-ups will be added to the ticket history and organized in your zendesk.
|
127
|
+
|
128
|
+
You’re eligible for 24-hour support throughout your trial. Please don’t hesitate to call or email our customer advocate team:
|
129
|
+
|
130
|
+
*(e) support@zendesk.com
|
131
|
+
*(p) +1 415.418.7506
|
132
|
+
|
133
|
+
Thank you for using Zendesk,
|
134
|
+
|
135
|
+
Kelly
|
136
|
+
Customer Advocate at Zendesk</value>
|
137
|
+
<via-id type="integer">4</via-id>
|
138
|
+
<attachments type="array"/>
|
139
|
+
</comment>
|
140
|
+
</comments>
|
141
|
+
<linkings type="array"/>
|
142
|
+
<ticket-field-entries type="array"/>
|
143
|
+
<channel nil="true"></channel>
|
144
|
+
</record>
|
145
|
+
</records>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ticket>
|
3
|
+
<assigned-at>2007-06-03T22:15:44Z</assigned-at>
|
4
|
+
<assignee-id>4</assignee-id>
|
5
|
+
<assignee-updated-at/>
|
6
|
+
<created-at>2007-06-03T20:15:44Z</created-at>
|
7
|
+
<subject></subject>
|
8
|
+
<description>My printer is not working</description>
|
9
|
+
<external-id/>
|
10
|
+
<group-id>2</group-id>
|
11
|
+
<id>2</id>
|
12
|
+
<linked-id/>
|
13
|
+
<priority-id>3</priority-id>
|
14
|
+
<submitter-id>3</submitter-id>
|
15
|
+
<status-id>1</status-id>
|
16
|
+
<status-updated-at>2007-06-03T22:15:44Z</status-updated-at>
|
17
|
+
<requester-id>3</requester-id>
|
18
|
+
<requester-updated-at>2007-06-03T22:15:44Z</requester-updated-at>
|
19
|
+
<ticket-type-id>2</ticket-type-id>
|
20
|
+
<updated-at>2007-06-03T20:15:45Z</updated-at>
|
21
|
+
<via-id>0</via-id>
|
22
|
+
<current-tags>printer hp</current-tags>
|
23
|
+
<score>28</score>
|
24
|
+
<comments type="array">
|
25
|
+
<comment>
|
26
|
+
<author-id>3</author-id>
|
27
|
+
<created-at>2007-06-03T20:15:45Z</created-at>
|
28
|
+
<is-public>true</is-public>
|
29
|
+
<value>This is a comment</value>
|
30
|
+
<via-id>0</via-id>
|
31
|
+
<via-reference-id/>
|
32
|
+
</comment>
|
33
|
+
<comment>
|
34
|
+
<author-id>5</author-id>
|
35
|
+
<created-at>2007-06-04T10:07:02Z</created-at>
|
36
|
+
<is-public>true</is-public>
|
37
|
+
<value>Make sure it is plugged in</value>
|
38
|
+
<via-id>0</via-id>
|
39
|
+
<via-reference-id/>
|
40
|
+
</comment>
|
41
|
+
</comments>
|
42
|
+
<ticket-field-entries type="array">
|
43
|
+
<ticket-field-entry>
|
44
|
+
<ticket-field-id>139</ticket-field-id>
|
45
|
+
<value>Please contact me by phone during work hours</value>
|
46
|
+
</ticket-field-entry>
|
47
|
+
<ticket-field-entry>
|
48
|
+
<ticket-field-id>141</ticket-field-id>
|
49
|
+
<value>true</value>
|
50
|
+
</ticket-field-entry>
|
51
|
+
</ticket-field-entries>
|
52
|
+
</ticket>
|
@@ -0,0 +1,78 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ticket>
|
3
|
+
<assigned-user-id type="integer" nil="true"></assigned-user-id>
|
4
|
+
<attachments-count type="integer">0</attachments-count>
|
5
|
+
<closed type="boolean">false</closed>
|
6
|
+
<created-at type="datetime">2010-07-03T05:01:48Z</created-at>
|
7
|
+
<creator-id type="integer">67916</creator-id>
|
8
|
+
<milestone-due-on type="datetime" nil="true"></milestone-due-on>
|
9
|
+
<milestone-id type="integer" nil="true"></milestone-id>
|
10
|
+
<number type="integer">5</number>
|
11
|
+
<permalink>tehantuehn</permalink>
|
12
|
+
<priority type="integer">3</priority>
|
13
|
+
<project-id type="integer">54448</project-id>
|
14
|
+
<raw-data type="binary" encoding="base64" nil="true"></raw-data>
|
15
|
+
<state>new</state>
|
16
|
+
<tag nil="true"></tag>
|
17
|
+
<title>tehantuehn</title>
|
18
|
+
<updated-at type="datetime">2010-07-08T02:11:21Z</updated-at>
|
19
|
+
<user-id type="integer">67916</user-id>
|
20
|
+
<user-name>Kia Kroas</user-name>
|
21
|
+
<creator-name>Kia Kroas</creator-name>
|
22
|
+
<url>http://ticketmaster.lighthouseapp.com/projects/54448/tickets/5</url>
|
23
|
+
<original-body>cheuasoht atesuhn</original-body>
|
24
|
+
<latest-body>cheuasoht atesuhn</latest-body>
|
25
|
+
<original-body-html><div><p>cheuasoht atesuhn</p></div></original-body-html>
|
26
|
+
<versions type="array">
|
27
|
+
<version type="Ticket::Version">
|
28
|
+
<assigned-user-id type="integer" nil="true"></assigned-user-id>
|
29
|
+
<attachments-count type="integer">0</attachments-count>
|
30
|
+
<body>cheuasoht atesuhn</body>
|
31
|
+
<body-html><div><p>cheuasoht atesuhn</p></div></body-html>
|
32
|
+
<closed type="boolean">false</closed>
|
33
|
+
<created-at type="datetime">2010-07-03T05:01:48Z</created-at>
|
34
|
+
<creator-id type="integer">67916</creator-id>
|
35
|
+
<diffable-attributes type="yaml">--- {}
|
36
|
+
|
37
|
+
</diffable-attributes>
|
38
|
+
<milestone-id type="integer" nil="true"></milestone-id>
|
39
|
+
<number type="integer">5</number>
|
40
|
+
<permalink>tehantuehn</permalink>
|
41
|
+
<priority type="integer">3</priority>
|
42
|
+
<project-id type="integer">54448</project-id>
|
43
|
+
<state>new</state>
|
44
|
+
<tag nil="true"></tag>
|
45
|
+
<title>tehantuehn</title>
|
46
|
+
<updated-at type="datetime">2010-07-03T05:01:51Z</updated-at>
|
47
|
+
<user-id type="integer">67916</user-id>
|
48
|
+
<user-name>Kia Kroas</user-name>
|
49
|
+
<creator-name>Kia Kroas</creator-name>
|
50
|
+
<url>http://ticketmaster.lighthouseapp.com/projects/54448/tickets/5</url>
|
51
|
+
</version>
|
52
|
+
<version type="Ticket::Version">
|
53
|
+
<assigned-user-id type="integer" nil="true"></assigned-user-id>
|
54
|
+
<attachments-count type="integer">0</attachments-count>
|
55
|
+
<body>New Body</body>
|
56
|
+
<body-html><div><p>New Body</p></div></body-html>
|
57
|
+
<closed type="boolean">false</closed>
|
58
|
+
<created-at type="datetime">2010-07-08T02:11:17Z</created-at>
|
59
|
+
<creator-id type="integer">67916</creator-id>
|
60
|
+
<diffable-attributes type="yaml">--- {}
|
61
|
+
|
62
|
+
</diffable-attributes>
|
63
|
+
<milestone-id type="integer" nil="true"></milestone-id>
|
64
|
+
<number type="integer">5</number>
|
65
|
+
<permalink>tehantuehn</permalink>
|
66
|
+
<priority type="integer">3</priority>
|
67
|
+
<project-id type="integer">54448</project-id>
|
68
|
+
<state>new</state>
|
69
|
+
<tag nil="true"></tag>
|
70
|
+
<title>tehantuehn</title>
|
71
|
+
<updated-at type="datetime">2010-07-08T02:11:21Z</updated-at>
|
72
|
+
<user-id type="integer">67916</user-id>
|
73
|
+
<user-name>Kia Kroas</user-name>
|
74
|
+
<creator-name>Kia Kroas</creator-name>
|
75
|
+
<url>http://ticketmaster.lighthouseapp.com/projects/54448/tickets/5</url>
|
76
|
+
</version>
|
77
|
+
</versions>
|
78
|
+
</ticket>
|