zendesk2 0.0.22 → 0.0.23

Sign up to get free protection for your applications and to get access to all the features.
@@ -61,6 +61,21 @@ class Zendesk2::Client::Ticket < Zendesk2::Model
61
61
  !self.reload
62
62
  end
63
63
 
64
+ def audits
65
+ connection.get_audits('ticket_id' => id).body['audits']
66
+ end
67
+
68
+ def comments
69
+ comments = []
70
+ audits.each do |audit|
71
+ events = audit['events'].select { |e| e['type'] == 'Comment' }
72
+ events.each do |event|
73
+ comments << event.merge({'created_at' => audit['created_at'], 'author_id' => audit['author_id']})
74
+ end
75
+ end
76
+ comments
77
+ end
78
+
64
79
  private
65
80
 
66
81
  def params
@@ -0,0 +1,23 @@
1
+ class Zendesk2::Client
2
+ class Real
3
+ def get_audits(params={})
4
+ id = params["ticket_id"]
5
+ page_params = Zendesk2.paging_parameters(params)
6
+
7
+ request(
8
+ :params => page_params,
9
+ :method => :get,
10
+ :path => "/tickets/#{id}/audits.json",
11
+ )
12
+ end
13
+ end # Real
14
+
15
+ class Mock
16
+ def get_audits(params={})
17
+ id = params["ticket_id"]
18
+ filter = lambda { |audit| audit.select{|a| a['ticket_id'] == id } }
19
+
20
+ page(params, :ticket_audits, "/tickets/#{id}/audits.json", "audits", filter: filter)
21
+ end
22
+ end # Mock
23
+ end
@@ -32,6 +32,7 @@ class Zendesk2::Client < Cistern::Service
32
32
  request :destroy_organization
33
33
  request :destroy_ticket
34
34
  request :destroy_user
35
+ request :get_audits
35
36
  request :get_current_user
36
37
  request :get_category
37
38
  request :get_forum
@@ -1,3 +1,3 @@
1
1
  module Zendesk2
2
- VERSION = "0.0.22"
2
+ VERSION = "0.0.23"
3
3
  end
data/spec/tickets_spec.rb CHANGED
@@ -17,4 +17,22 @@ describe "tickets" do
17
17
  ticket.submitter.should == client.users.current
18
18
  end
19
19
  end
20
+
21
+ describe "comments" do
22
+ let(:ticket) { client.tickets.create(subject: Zendesk2.uuid, description: Zendesk2.uuid) }
23
+ before(:each) { client.data[:ticket_audits] = {} }
24
+
25
+ it "lists audits" do
26
+ ticket.audits.size.should == 0
27
+ client.data[:ticket_audits][1] = {'ticket_id' => ticket.id}
28
+ ticket.audits.size.should == 1
29
+ end
30
+
31
+ it "lists comments" do
32
+ ticket.comments.size.should == 0
33
+ client.data[:ticket_audits][2] = {'ticket_id' => ticket.id, 'events' => [{'type' => 'Comment'}]}
34
+ client.data[:ticket_audits][3] = {'ticket_id' => ticket.id, 'events' => [{'type' => 'Change'}]}
35
+ ticket.comments.size.should == 1
36
+ end
37
+ end
20
38
  end
metadata CHANGED
@@ -1,17 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
5
4
  prerelease:
5
+ version: 0.0.23
6
6
  platform: ruby
7
7
  authors:
8
8
  - Josh Lane
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-30 00:00:00.000000000 Z
12
+ date: 2012-12-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
+ prerelease: false
16
+ type: :runtime
17
+ version_requirements: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 0.1.3
15
23
  name: cistern
16
24
  requirement: !ruby/object:Gem::Requirement
17
25
  none: false
@@ -19,15 +27,15 @@ dependencies:
19
27
  - - ~>
20
28
  - !ruby/object:Gem::Version
21
29
  version: 0.1.3
22
- type: :runtime
30
+ - !ruby/object:Gem::Dependency
23
31
  prerelease: false
32
+ type: :runtime
24
33
  version_requirements: !ruby/object:Gem::Requirement
25
34
  none: false
26
35
  requirements:
27
- - - ~>
36
+ - - ! '>='
28
37
  - !ruby/object:Gem::Version
29
- version: 0.1.3
30
- - !ruby/object:Gem::Dependency
38
+ version: '0'
31
39
  name: faraday
32
40
  requirement: !ruby/object:Gem::Requirement
33
41
  none: false
@@ -35,15 +43,15 @@ dependencies:
35
43
  - - ! '>='
36
44
  - !ruby/object:Gem::Version
37
45
  version: '0'
38
- type: :runtime
46
+ - !ruby/object:Gem::Dependency
39
47
  prerelease: false
48
+ type: :runtime
40
49
  version_requirements: !ruby/object:Gem::Requirement
41
50
  none: false
42
51
  requirements:
43
52
  - - ! '>='
44
53
  - !ruby/object:Gem::Version
45
54
  version: '0'
46
- - !ruby/object:Gem::Dependency
47
55
  name: faraday_middleware
48
56
  requirement: !ruby/object:Gem::Requirement
49
57
  none: false
@@ -51,15 +59,15 @@ dependencies:
51
59
  - - ! '>='
52
60
  - !ruby/object:Gem::Version
53
61
  version: '0'
54
- type: :runtime
62
+ - !ruby/object:Gem::Dependency
55
63
  prerelease: false
64
+ type: :runtime
56
65
  version_requirements: !ruby/object:Gem::Requirement
57
66
  none: false
58
67
  requirements:
59
68
  - - ! '>='
60
69
  - !ruby/object:Gem::Version
61
70
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
71
  name: addressable
64
72
  requirement: !ruby/object:Gem::Requirement
65
73
  none: false
@@ -67,14 +75,6 @@ dependencies:
67
75
  - - ! '>='
68
76
  - !ruby/object:Gem::Version
69
77
  version: '0'
70
- type: :runtime
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
78
  description: Zendesk V2 API client
79
79
  email:
80
80
  - me@joshualane.com
@@ -120,6 +120,7 @@ files:
120
120
  - lib/zendesk2/client/requests/destroy_topic.rb
121
121
  - lib/zendesk2/client/requests/destroy_topic_comment.rb
122
122
  - lib/zendesk2/client/requests/destroy_user.rb
123
+ - lib/zendesk2/client/requests/get_audits.rb
123
124
  - lib/zendesk2/client/requests/get_categories.rb
124
125
  - lib/zendesk2/client/requests/get_category.rb
125
126
  - lib/zendesk2/client/requests/get_ccd_tickets.rb