zendesk_api 0.1.7 → 0.1.8
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/.yardopts +1 -1
- data/Gemfile.lock +3 -1
- data/Rakefile +1 -0
- data/Readme.md +38 -0
- data/lib/zendesk_api.rb +2 -3
- data/lib/zendesk_api/actions.rb +9 -2
- data/lib/zendesk_api/association.rb +28 -54
- data/lib/zendesk_api/client.rb +20 -5
- data/lib/zendesk_api/collection.rb +31 -16
- data/lib/zendesk_api/configuration.rb +1 -0
- data/lib/zendesk_api/helpers.rb +1 -0
- data/lib/zendesk_api/lru_cache.rb +1 -0
- data/lib/zendesk_api/middleware/request/etag_cache.rb +1 -0
- data/lib/zendesk_api/middleware/request/retry.rb +2 -0
- data/lib/zendesk_api/middleware/request/upload.rb +1 -0
- data/lib/zendesk_api/middleware/response/callback.rb +1 -0
- data/lib/zendesk_api/middleware/response/deflate.rb +1 -0
- data/lib/zendesk_api/middleware/response/gzip.rb +2 -0
- data/lib/zendesk_api/middleware/response/logger.rb +1 -0
- data/lib/zendesk_api/middleware/response/parse_iso_dates.rb +1 -0
- data/lib/zendesk_api/rescue.rb +2 -0
- data/lib/zendesk_api/resource.rb +11 -6
- data/lib/zendesk_api/resources.rb +319 -0
- data/lib/zendesk_api/sideloading.rb +1 -0
- data/lib/zendesk_api/track_changes.rb +3 -2
- data/lib/zendesk_api/trackie.rb +1 -0
- data/lib/zendesk_api/version.rb +1 -1
- data/spec/association_spec.rb +1 -1
- data/spec/client_spec.rb +13 -2
- data/spec/collection_spec.rb +7 -7
- data/spec/data_resource_spec.rb +53 -66
- data/spec/read_resource_spec.rb +1 -1
- data/spec/resource_spec.rb +6 -6
- data/spec/spec_helper.rb +1 -1
- data/util/resource_handler.rb +68 -0
- data/util/verb_handler.rb +16 -0
- data/zendesk_api.gemspec +3 -2
- metadata +27 -12
- data/lib/zendesk_api/resources/forum.rb +0 -51
- data/lib/zendesk_api/resources/misc.rb +0 -79
- data/lib/zendesk_api/resources/ticket.rb +0 -97
- data/lib/zendesk_api/resources/user.rb +0 -59
@@ -0,0 +1,16 @@
|
|
1
|
+
class VerbHandler < YARD::Handlers::Ruby::Base
|
2
|
+
handles method_call(:put), method_call(:post), method_call(:get)
|
3
|
+
|
4
|
+
def process
|
5
|
+
name = statement.parameters.first.jump(:ident).source
|
6
|
+
|
7
|
+
verb = YARD::CodeObjects::MethodObject.new(namespace, name)
|
8
|
+
register(verb)
|
9
|
+
verb.dynamic = true
|
10
|
+
verb.docstring.add_tag(YARD::Tags::Tag.new(:return, "Success of this call", "Boolean"))
|
11
|
+
|
12
|
+
verb.signature = "def #{name}=(options = {})"
|
13
|
+
verb.parameters = [['options', {}]]
|
14
|
+
verb.docstring.add_tag(YARD::Tags::Tag.new(:param, "Options to pass to the request", "Hash", "options"))
|
15
|
+
end
|
16
|
+
end
|
data/zendesk_api.gemspec
CHANGED
@@ -18,10 +18,11 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.required_ruby_version = ">= 1.8.7"
|
19
19
|
s.required_rubygems_version = ">= 1.3.6"
|
20
20
|
|
21
|
+
s.add_development_dependency "bump"
|
22
|
+
s.add_development_dependency "rake"
|
21
23
|
s.add_development_dependency "rspec"
|
22
24
|
s.add_development_dependency "vcr"
|
23
25
|
s.add_development_dependency "webmock"
|
24
|
-
s.add_development_dependency "rake"
|
25
26
|
s.add_development_dependency "yard"
|
26
27
|
|
27
28
|
# Optional. Only used for uploads testing.
|
@@ -30,8 +31,8 @@ Gem::Specification.new do |s|
|
|
30
31
|
s.add_runtime_dependency "faraday", ">= 0.8.0"
|
31
32
|
s.add_runtime_dependency "faraday_middleware", ">= 0.8.7"
|
32
33
|
s.add_runtime_dependency "hashie"
|
33
|
-
s.add_runtime_dependency "json"
|
34
34
|
s.add_runtime_dependency "inflection"
|
35
|
+
s.add_runtime_dependency "json"
|
35
36
|
s.add_runtime_dependency "mime-types"
|
36
37
|
s.add_runtime_dependency "multipart-post"
|
37
38
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-10-
|
13
|
+
date: 2012-10-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: bump
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: '0'
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
|
-
name:
|
32
|
+
name: rake
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
34
34
|
none: false
|
35
35
|
requirements:
|
@@ -45,7 +45,7 @@ dependencies:
|
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '0'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
48
|
+
name: rspec
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
@@ -61,7 +61,23 @@ dependencies:
|
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
64
|
+
name: vcr
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
type: :development
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: webmock
|
65
81
|
requirement: !ruby/object:Gem::Requirement
|
66
82
|
none: false
|
67
83
|
requirements:
|
@@ -141,7 +157,7 @@ dependencies:
|
|
141
157
|
- !ruby/object:Gem::Version
|
142
158
|
version: '0'
|
143
159
|
- !ruby/object:Gem::Dependency
|
144
|
-
name:
|
160
|
+
name: inflection
|
145
161
|
requirement: !ruby/object:Gem::Requirement
|
146
162
|
none: false
|
147
163
|
requirements:
|
@@ -157,7 +173,7 @@ dependencies:
|
|
157
173
|
- !ruby/object:Gem::Version
|
158
174
|
version: '0'
|
159
175
|
- !ruby/object:Gem::Dependency
|
160
|
-
name:
|
176
|
+
name: json
|
161
177
|
requirement: !ruby/object:Gem::Requirement
|
162
178
|
none: false
|
163
179
|
requirements:
|
@@ -240,10 +256,7 @@ files:
|
|
240
256
|
- lib/zendesk_api/middleware/response/parse_iso_dates.rb
|
241
257
|
- lib/zendesk_api/rescue.rb
|
242
258
|
- lib/zendesk_api/resource.rb
|
243
|
-
- lib/zendesk_api/resources
|
244
|
-
- lib/zendesk_api/resources/misc.rb
|
245
|
-
- lib/zendesk_api/resources/ticket.rb
|
246
|
-
- lib/zendesk_api/resources/user.rb
|
259
|
+
- lib/zendesk_api/resources.rb
|
247
260
|
- lib/zendesk_api/sideloading.rb
|
248
261
|
- lib/zendesk_api/track_changes.rb
|
249
262
|
- lib/zendesk_api/trackie.rb
|
@@ -308,6 +321,8 @@ files:
|
|
308
321
|
- spec/search_spec.rb
|
309
322
|
- spec/spec_helper.rb
|
310
323
|
- spec/trackie_spec.rb
|
324
|
+
- util/resource_handler.rb
|
325
|
+
- util/verb_handler.rb
|
311
326
|
- zendesk_api.gemspec
|
312
327
|
homepage: http://developer.zendesk.com
|
313
328
|
licenses:
|
@@ -1,51 +0,0 @@
|
|
1
|
-
module ZendeskAPI
|
2
|
-
class ForumSubscription < Resource
|
3
|
-
only_send_unnested_params
|
4
|
-
has :forum
|
5
|
-
has :user
|
6
|
-
end
|
7
|
-
|
8
|
-
class Forum < Resource
|
9
|
-
has :category
|
10
|
-
has :organization
|
11
|
-
has :locale
|
12
|
-
|
13
|
-
has_many :topics
|
14
|
-
has_many :subscriptions, :class => :forum_subscription
|
15
|
-
end
|
16
|
-
|
17
|
-
class Category < Resource
|
18
|
-
has_many :forums
|
19
|
-
end
|
20
|
-
|
21
|
-
class TopicSubscription < Resource
|
22
|
-
only_send_unnested_params
|
23
|
-
has :topic
|
24
|
-
has :user
|
25
|
-
end
|
26
|
-
|
27
|
-
class Topic < Resource
|
28
|
-
class TopicComment < Resource
|
29
|
-
has :topic
|
30
|
-
has :user
|
31
|
-
has_many :attachments
|
32
|
-
end
|
33
|
-
|
34
|
-
class TopicVote < SingularResource
|
35
|
-
only_send_unnested_params
|
36
|
-
has :topic
|
37
|
-
has :user
|
38
|
-
end
|
39
|
-
|
40
|
-
has_many :comments, :class => :topic_comment
|
41
|
-
has_many :subscriptions, :class => :topic_subscription
|
42
|
-
has :vote, :class => :topic_vote
|
43
|
-
|
44
|
-
def votes(opts = {})
|
45
|
-
return @votes if @votes && !opts[:reload]
|
46
|
-
|
47
|
-
association = ZendeskAPI::Association.new(:class => Topic::TopicVote, :parent => self, :path => 'votes')
|
48
|
-
@votes = ZendeskAPI::Collection.new(@client, Topic::TopicVote, opts.merge(:association => association))
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
module ZendeskAPI
|
2
|
-
class Activity < Resource
|
3
|
-
has :user
|
4
|
-
has :actor, :class => :user
|
5
|
-
end
|
6
|
-
|
7
|
-
class Setting < DataResource
|
8
|
-
attr_reader :on
|
9
|
-
|
10
|
-
def initialize(client, attributes = {})
|
11
|
-
@on = attributes.first
|
12
|
-
super(client, attributes[1])
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class MobileDevice < Resource
|
17
|
-
put :clear_badge
|
18
|
-
end
|
19
|
-
|
20
|
-
class SatisfactionRating < ReadResource
|
21
|
-
has :assignee, :class => :user
|
22
|
-
has :requester, :class => :user
|
23
|
-
has :ticket
|
24
|
-
has :group
|
25
|
-
end
|
26
|
-
|
27
|
-
class Attachment < Data
|
28
|
-
def initialize(client, attributes)
|
29
|
-
if attributes.is_a?(Hash)
|
30
|
-
super
|
31
|
-
else
|
32
|
-
super(client, :file => attributes)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def save
|
37
|
-
upload = Upload.create!(@client, attributes)
|
38
|
-
self.token = upload.token
|
39
|
-
end
|
40
|
-
|
41
|
-
def to_param
|
42
|
-
token
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
class Upload < Data
|
47
|
-
include Create
|
48
|
-
|
49
|
-
only_send_unnested_params
|
50
|
-
has_many :attachments
|
51
|
-
end
|
52
|
-
|
53
|
-
class Locale < ReadResource; end
|
54
|
-
class Bookmark < Resource; end
|
55
|
-
class Macro < DataResource; end
|
56
|
-
|
57
|
-
module Search
|
58
|
-
class Result < Data; end
|
59
|
-
|
60
|
-
def self.new(client, attributes)
|
61
|
-
result_type = attributes["result_type"]
|
62
|
-
|
63
|
-
if result_type
|
64
|
-
result_type = ZendeskAPI::Helpers.modulize_string(result_type)
|
65
|
-
klass = ZendeskAPI.const_get(result_type) rescue nil
|
66
|
-
end
|
67
|
-
|
68
|
-
(klass || Result).new(client, attributes)
|
69
|
-
end
|
70
|
-
|
71
|
-
def self.resource_name
|
72
|
-
"search"
|
73
|
-
end
|
74
|
-
|
75
|
-
def self.model_key
|
76
|
-
"results"
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
@@ -1,97 +0,0 @@
|
|
1
|
-
module ZendeskAPI
|
2
|
-
class Request < Resource
|
3
|
-
class Comment < ReadResource
|
4
|
-
has_many :attachments, :inline => true
|
5
|
-
end
|
6
|
-
|
7
|
-
has_many :comments
|
8
|
-
has :organization
|
9
|
-
end
|
10
|
-
|
11
|
-
class TicketField < Resource; end
|
12
|
-
|
13
|
-
class TicketComment < Data
|
14
|
-
include Save
|
15
|
-
|
16
|
-
has_many :uploads, :class => :attachment, :inline => true
|
17
|
-
has :author, :class => :user
|
18
|
-
|
19
|
-
def save
|
20
|
-
save_associations
|
21
|
-
true
|
22
|
-
end
|
23
|
-
|
24
|
-
alias :save! :save
|
25
|
-
end
|
26
|
-
|
27
|
-
class TicketMetric < ReadResource; end
|
28
|
-
|
29
|
-
class Ticket < Resource
|
30
|
-
class Audit < DataResource; end
|
31
|
-
|
32
|
-
has :requester, :class => :user, :inline => :create
|
33
|
-
has :submitter, :class => :user
|
34
|
-
has :assignee, :class => :user
|
35
|
-
has :recipient, :class => :user
|
36
|
-
has_many :collaborators, :class => :user
|
37
|
-
has_many :audits
|
38
|
-
has :metrics, :class => :ticket_metric
|
39
|
-
has :group
|
40
|
-
has :forum_topic, :class => :topic
|
41
|
-
has :organization
|
42
|
-
|
43
|
-
has :comment, :class => :ticket_comment, :inline => true
|
44
|
-
has :last_comment, :class => :ticket_comment, :inline => true
|
45
|
-
|
46
|
-
# Gets a incremental export of tickets from the start_time until now.
|
47
|
-
# @param [Client] client The {Client} object to be used
|
48
|
-
# @param [Integer] start_time The start_time parameter
|
49
|
-
# @return [Collection] Collection of {Ticket}
|
50
|
-
def self.incremental_export(client, start_time)
|
51
|
-
ZendeskAPI::Collection.new(client, self, :path => "exports/tickets?start_time=#{start_time.to_i}")
|
52
|
-
end
|
53
|
-
|
54
|
-
# Imports a ticket through the imports/tickets endpoint
|
55
|
-
# @param [Client] client The {Client} object to be used
|
56
|
-
# @param [Hash] attributes The attributes to create.
|
57
|
-
# @return [Ticket] Created object or nil
|
58
|
-
def self.import(client, attributes)
|
59
|
-
ticket = new(client, attributes)
|
60
|
-
return unless ticket.save(:path => "imports/tickets")
|
61
|
-
ticket
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
class SuspendedTicket < ReadResource
|
66
|
-
include Destroy
|
67
|
-
put :recover
|
68
|
-
end
|
69
|
-
|
70
|
-
class ViewRow < DataResource
|
71
|
-
has :ticket
|
72
|
-
|
73
|
-
# Optional columns
|
74
|
-
has :group
|
75
|
-
has :assignee, :class => :user
|
76
|
-
has :requester, :class => :user
|
77
|
-
has :submitter, :class => :user
|
78
|
-
has :organization
|
79
|
-
|
80
|
-
def self.model_key
|
81
|
-
"rows"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
class ViewExecution < Data
|
86
|
-
has_many :custom_fields, :class => :ticket_field
|
87
|
-
end
|
88
|
-
|
89
|
-
class View < ReadResource
|
90
|
-
has_many :rows, :class => :view_row, :path => "execute"
|
91
|
-
has :execution, :class => :view_execution
|
92
|
-
|
93
|
-
def self.preview(client, options = {})
|
94
|
-
Collection.new(client, ViewRow, options.merge(:path => "views/preview", :verb => :post))
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
require 'zendesk_api/resources/forum'
|
2
|
-
|
3
|
-
module ZendeskAPI
|
4
|
-
class CRMData < DataResource; end
|
5
|
-
class CRMDataStatus < DataResource; end
|
6
|
-
class CustomRole < DataResource; end
|
7
|
-
|
8
|
-
class GroupMembership < Resource
|
9
|
-
has :user
|
10
|
-
has :group
|
11
|
-
end
|
12
|
-
|
13
|
-
class User < Resource
|
14
|
-
class Identity < Resource
|
15
|
-
put :make_primary
|
16
|
-
put :verify
|
17
|
-
put :request_verification
|
18
|
-
end
|
19
|
-
|
20
|
-
def initialize(*)
|
21
|
-
super
|
22
|
-
|
23
|
-
# Needed for side-loading to work
|
24
|
-
self.role_id = role.id if self.key?(:role)
|
25
|
-
end
|
26
|
-
|
27
|
-
has :organization
|
28
|
-
|
29
|
-
has :custom_role, :include => :roles
|
30
|
-
has :role, :inline => true, :include_key => :name
|
31
|
-
has :ability, :inline => true
|
32
|
-
|
33
|
-
has_many :identities
|
34
|
-
|
35
|
-
has_many :requests
|
36
|
-
has_many :requested_tickets, :class => :ticket, :path => 'tickets/requested'
|
37
|
-
has_many :ccd_tickets, :class => :ticket, :path => 'tickets/ccd'
|
38
|
-
|
39
|
-
has_many :groups
|
40
|
-
has_many :group_memberships
|
41
|
-
has_many :topics
|
42
|
-
|
43
|
-
has_many :forum_subscriptions, :class => "forum_subscription"
|
44
|
-
has_many :topic_subscriptions, :class => "topic_subscription"
|
45
|
-
has_many :topic_comments, :class => "topic/topic_comment"
|
46
|
-
has_many :topic_votes, :class => "topic/vote"
|
47
|
-
|
48
|
-
has :crm_data
|
49
|
-
has :crm_data_status, :path => 'crm_data/status'
|
50
|
-
end
|
51
|
-
|
52
|
-
class Organization < Resource
|
53
|
-
has :ability, :inline => true
|
54
|
-
has :group
|
55
|
-
|
56
|
-
has_many :tickets
|
57
|
-
has_many :users
|
58
|
-
end
|
59
|
-
end
|