zendesk2 0.0.22 → 0.0.23

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.
@@ -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