zendesk2 1.12.0 → 1.13.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.
- checksums.yaml +5 -5
- data/README.md +2 -0
- data/lib/zendesk2.rb +14 -0
- data/lib/zendesk2/brand.rb +58 -0
- data/lib/zendesk2/brands.rb +13 -0
- data/lib/zendesk2/create_brand.rb +41 -0
- data/lib/zendesk2/create_ticket.rb +1 -1
- data/lib/zendesk2/create_ticket_field.rb +2 -1
- data/lib/zendesk2/create_ticket_form.rb +41 -0
- data/lib/zendesk2/destroy_brand.rb +17 -0
- data/lib/zendesk2/destroy_ticket_form.rb +17 -0
- data/lib/zendesk2/get_brand.rb +15 -0
- data/lib/zendesk2/get_brands.rb +13 -0
- data/lib/zendesk2/get_ticket_form.rb +15 -0
- data/lib/zendesk2/get_ticket_forms.rb +37 -0
- data/lib/zendesk2/help_center/article.rb +5 -1
- data/lib/zendesk2/help_center/create_help_center_article.rb +33 -19
- data/lib/zendesk2/mock.rb +2 -0
- data/lib/zendesk2/ticket.rb +4 -0
- data/lib/zendesk2/ticket_field.rb +2 -0
- data/lib/zendesk2/ticket_form.rb +52 -0
- data/lib/zendesk2/ticket_forms.rb +16 -0
- data/lib/zendesk2/update_brand.rb +20 -0
- data/lib/zendesk2/update_ticket_form.rb +20 -0
- data/lib/zendesk2/version.rb +1 -1
- data/spec/brands_spec.rb +12 -0
- data/spec/help_center/articles_spec.rb +2 -1
- data/spec/help_center/categories_spec.rb +5 -2
- data/spec/help_center/sections_spec.rb +5 -2
- data/spec/help_center/subscriptions_spec.rb +2 -1
- data/spec/help_center/translations_spec.rb +3 -1
- data/spec/ticket_fields_spec.rb +1 -1
- data/spec/ticket_forms_spec.rb +11 -0
- data/spec/tickets_spec.rb +16 -0
- metadata +21 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 976b953f93c756c82467fc000cf0ec1bbb81f7b8811592474e115aaba2395134
|
|
4
|
+
data.tar.gz: 4f6c9bb551ea4801c525c7925ead6aa331c97d549c32c4901ead32f60af2656d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0add53ea5c6a5d74d31adc1609b8cba4a8db75d3421695473e6543ec3269c84b37bc2ee946ba117fd3e63b26594f1337b7ecf168f32838556faf3b6158b70fb
|
|
7
|
+
data.tar.gz: d81940091f8df258e37f22ee46e408ef85dabb71c32b980dce14bc6a85f603820201eb7e79f9374acac21df25f17c1bfd7973f914def13ae9d7587a3095061bf
|
data/README.md
CHANGED
|
@@ -61,6 +61,7 @@ Zendesk2.new(url: "http://support.cloud.engineyard.com", username: "mate", token
|
|
|
61
61
|
Currently support resources:
|
|
62
62
|
|
|
63
63
|
* Audit Events
|
|
64
|
+
* Brands
|
|
64
65
|
* Categories
|
|
65
66
|
* Forums
|
|
66
67
|
* Groups
|
|
@@ -69,6 +70,7 @@ Currently support resources:
|
|
|
69
70
|
* Ticket Audits
|
|
70
71
|
* Ticket Fields
|
|
71
72
|
* Tickets
|
|
73
|
+
* Ticket Forms
|
|
72
74
|
* Topic Comments
|
|
73
75
|
* Topics
|
|
74
76
|
* User Identities
|
data/lib/zendesk2.rb
CHANGED
|
@@ -59,12 +59,14 @@ require 'zendesk2/model'
|
|
|
59
59
|
require 'zendesk2/collection'
|
|
60
60
|
require 'zendesk2/help_center'
|
|
61
61
|
|
|
62
|
+
require 'zendesk2/create_brand'
|
|
62
63
|
require 'zendesk2/create_category'
|
|
63
64
|
require 'zendesk2/create_forum'
|
|
64
65
|
require 'zendesk2/create_group'
|
|
65
66
|
require 'zendesk2/create_membership'
|
|
66
67
|
require 'zendesk2/create_organization'
|
|
67
68
|
require 'zendesk2/create_ticket'
|
|
69
|
+
require 'zendesk2/create_ticket_form'
|
|
68
70
|
require 'zendesk2/create_ticket_field'
|
|
69
71
|
require 'zendesk2/create_topic'
|
|
70
72
|
require 'zendesk2/create_topic_comment'
|
|
@@ -72,12 +74,14 @@ require 'zendesk2/create_user'
|
|
|
72
74
|
require 'zendesk2/create_user_field'
|
|
73
75
|
require 'zendesk2/create_user_identity'
|
|
74
76
|
require 'zendesk2/create_view'
|
|
77
|
+
require 'zendesk2/destroy_brand'
|
|
75
78
|
require 'zendesk2/destroy_category'
|
|
76
79
|
require 'zendesk2/destroy_forum'
|
|
77
80
|
require 'zendesk2/destroy_group'
|
|
78
81
|
require 'zendesk2/destroy_membership'
|
|
79
82
|
require 'zendesk2/destroy_organization'
|
|
80
83
|
require 'zendesk2/destroy_ticket'
|
|
84
|
+
require 'zendesk2/destroy_ticket_form'
|
|
81
85
|
require 'zendesk2/destroy_ticket_field'
|
|
82
86
|
require 'zendesk2/destroy_topic'
|
|
83
87
|
require 'zendesk2/destroy_topic_comment'
|
|
@@ -86,6 +90,8 @@ require 'zendesk2/destroy_user_field'
|
|
|
86
90
|
require 'zendesk2/destroy_user_identity'
|
|
87
91
|
require 'zendesk2/destroy_view'
|
|
88
92
|
require 'zendesk2/get_assignable_groups'
|
|
93
|
+
require 'zendesk2/get_brand'
|
|
94
|
+
require 'zendesk2/get_brands'
|
|
89
95
|
require 'zendesk2/get_categories'
|
|
90
96
|
require 'zendesk2/get_category'
|
|
91
97
|
require 'zendesk2/get_ccd_tickets'
|
|
@@ -109,6 +115,8 @@ require 'zendesk2/get_ticket_audits'
|
|
|
109
115
|
require 'zendesk2/get_ticket_comments'
|
|
110
116
|
require 'zendesk2/get_ticket_field'
|
|
111
117
|
require 'zendesk2/get_ticket_fields'
|
|
118
|
+
require 'zendesk2/get_ticket_form'
|
|
119
|
+
require 'zendesk2/get_ticket_forms'
|
|
112
120
|
require 'zendesk2/get_ticket_metric'
|
|
113
121
|
require 'zendesk2/get_ticket_metrics'
|
|
114
122
|
require 'zendesk2/get_tickets'
|
|
@@ -130,10 +138,12 @@ require 'zendesk2/get_views'
|
|
|
130
138
|
require 'zendesk2/mark_membership_default'
|
|
131
139
|
require 'zendesk2/mark_user_identity_primary'
|
|
132
140
|
require 'zendesk2/update_category'
|
|
141
|
+
require 'zendesk2/update_brand'
|
|
133
142
|
require 'zendesk2/update_forum'
|
|
134
143
|
require 'zendesk2/update_group'
|
|
135
144
|
require 'zendesk2/update_organization'
|
|
136
145
|
require 'zendesk2/update_ticket'
|
|
146
|
+
require 'zendesk2/update_ticket_form'
|
|
137
147
|
require 'zendesk2/update_ticket_field'
|
|
138
148
|
require 'zendesk2/update_topic'
|
|
139
149
|
require 'zendesk2/update_user'
|
|
@@ -147,6 +157,7 @@ require 'zendesk2/search_user'
|
|
|
147
157
|
|
|
148
158
|
require 'zendesk2/audit_event'
|
|
149
159
|
|
|
160
|
+
require 'zendesk2/brand'
|
|
150
161
|
require 'zendesk2/category'
|
|
151
162
|
require 'zendesk2/forum'
|
|
152
163
|
require 'zendesk2/group'
|
|
@@ -156,6 +167,7 @@ require 'zendesk2/ticket'
|
|
|
156
167
|
require 'zendesk2/ticket_audit'
|
|
157
168
|
require 'zendesk2/ticket_comment'
|
|
158
169
|
require 'zendesk2/ticket_field'
|
|
170
|
+
require 'zendesk2/ticket_form'
|
|
159
171
|
require 'zendesk2/topic'
|
|
160
172
|
require 'zendesk2/topic_comment'
|
|
161
173
|
require 'zendesk2/user'
|
|
@@ -163,6 +175,7 @@ require 'zendesk2/user_field'
|
|
|
163
175
|
require 'zendesk2/user_identity'
|
|
164
176
|
require 'zendesk2/view'
|
|
165
177
|
|
|
178
|
+
require 'zendesk2/brands'
|
|
166
179
|
require 'zendesk2/categories'
|
|
167
180
|
require 'zendesk2/forums'
|
|
168
181
|
require 'zendesk2/groups'
|
|
@@ -171,6 +184,7 @@ require 'zendesk2/organizations'
|
|
|
171
184
|
require 'zendesk2/ticket_audits'
|
|
172
185
|
require 'zendesk2/ticket_comments'
|
|
173
186
|
require 'zendesk2/ticket_fields'
|
|
187
|
+
require 'zendesk2/ticket_forms'
|
|
174
188
|
require 'zendesk2/tickets'
|
|
175
189
|
require 'zendesk2/topic_comments'
|
|
176
190
|
require 'zendesk2/topics'
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::Brand
|
|
3
|
+
include Zendesk2::Model
|
|
4
|
+
|
|
5
|
+
extend Zendesk2::Attributes
|
|
6
|
+
|
|
7
|
+
# @return [integer] Automatically assigned upon creation
|
|
8
|
+
identity :id, type: :integer
|
|
9
|
+
|
|
10
|
+
# @return [String] The API url of this brand
|
|
11
|
+
attribute :url, type: :string
|
|
12
|
+
# @return [String] The name of the brand
|
|
13
|
+
attribute :name, type: :string
|
|
14
|
+
# @return [String] The url of the brand
|
|
15
|
+
attribute :brand_url, type: :string
|
|
16
|
+
# @return [Boolean] If the brand has a Help Center
|
|
17
|
+
attribute :has_help_center, type: :boolean
|
|
18
|
+
# @return [String] The state of the Help Center: enabled, disabled, or restricted
|
|
19
|
+
attribute :help_center_state, type: :string
|
|
20
|
+
# @return [Boolean] If the brand is set as active
|
|
21
|
+
attribute :active, type: :boolean
|
|
22
|
+
# @return [Boolean] Is the brand the default brand for this account
|
|
23
|
+
attribute :default, type: :boolean
|
|
24
|
+
# @return [Attachment] Logo image for this brand
|
|
25
|
+
attribute :logo, type: :Attachment
|
|
26
|
+
# @return [Array] The ids of ticket forms that are available for use by a brand
|
|
27
|
+
attribute :ticket_form_ids, type: :array
|
|
28
|
+
# @return [Date] The time the brand was created
|
|
29
|
+
attribute :created_at, type: :date
|
|
30
|
+
# @return [Date] The time of the last update of the brand
|
|
31
|
+
attribute :updated_at, type: :date
|
|
32
|
+
# @return [String] The subdomain of the brand
|
|
33
|
+
attribute :subdomain, type: :string
|
|
34
|
+
# @return [String] The hostmapping to this brand, if any (only admins view this key)
|
|
35
|
+
attribute :host_mapping, type: :string
|
|
36
|
+
# @return [String] The signature template for a brand
|
|
37
|
+
attribute :signature_template, type: :string
|
|
38
|
+
|
|
39
|
+
def save!
|
|
40
|
+
data = if new_record?
|
|
41
|
+
requires :name
|
|
42
|
+
|
|
43
|
+
cistern.create_brand('brand' => attributes)
|
|
44
|
+
else
|
|
45
|
+
requires :identity
|
|
46
|
+
|
|
47
|
+
cistern.update_brand('brand' => attributes)
|
|
48
|
+
end.body['brand']
|
|
49
|
+
|
|
50
|
+
merge_attributes(data)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def destroy!
|
|
54
|
+
requires :identity
|
|
55
|
+
|
|
56
|
+
cistern.destroy_brand('brand' => { 'id' => identity })
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::Brands
|
|
3
|
+
include Zendesk2::Collection
|
|
4
|
+
|
|
5
|
+
model Zendesk2::Brand
|
|
6
|
+
|
|
7
|
+
attribute :count, type: :integer
|
|
8
|
+
|
|
9
|
+
self.collection_method = :get_brands
|
|
10
|
+
self.collection_root = 'brands'
|
|
11
|
+
self.model_method = :get_brand
|
|
12
|
+
self.model_root = 'brand'
|
|
13
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::CreateBrand
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :post
|
|
6
|
+
request_path { |_| '/brands.json' }
|
|
7
|
+
request_body { |r| { 'brand' => r.brand_params } }
|
|
8
|
+
|
|
9
|
+
def self.accepted_attributes
|
|
10
|
+
%w(name brand_url has_help_center help_center_state active default ticket_form_ids
|
|
11
|
+
subdomain host_mapping signature_template)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def brand_params
|
|
15
|
+
Cistern::Hash.slice(params.fetch('brand'), *self.class.accepted_attributes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def mock
|
|
19
|
+
identity = cistern.serial_id
|
|
20
|
+
|
|
21
|
+
record = {
|
|
22
|
+
'id' => identity,
|
|
23
|
+
'name' => params['name'],
|
|
24
|
+
'brand_url' => '',
|
|
25
|
+
'has_help_center' => true,
|
|
26
|
+
'help_center_state' => true,
|
|
27
|
+
'active' => true,
|
|
28
|
+
'end_user_visible' => true,
|
|
29
|
+
'default' => false,
|
|
30
|
+
'ticket_form_ids' => params['ticket_form_ids'],
|
|
31
|
+
'subdomain' => params['subdomain'],
|
|
32
|
+
'host_mapping' => '',
|
|
33
|
+
'signature_template' => '',
|
|
34
|
+
'url' => url_for("/brands/#{identity}.json"),
|
|
35
|
+
}.merge(brand_params)
|
|
36
|
+
|
|
37
|
+
data[:brands][identity] = record
|
|
38
|
+
|
|
39
|
+
mock_response('brand' => record)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -8,7 +8,7 @@ class Zendesk2::CreateTicket
|
|
|
8
8
|
|
|
9
9
|
def self.accepted_attributes
|
|
10
10
|
%w(external_id via priority requester requester_id submitter_id assignee_id organization_id subject description
|
|
11
|
-
custom_fields recipient status collaborator_ids collaborators tags)
|
|
11
|
+
custom_fields recipient status collaborator_ids collaborators tags ticket_form_id brand_id)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def ticket_params
|
|
@@ -8,7 +8,7 @@ class Zendesk2::CreateTicketField
|
|
|
8
8
|
|
|
9
9
|
def self.accepted_attributes
|
|
10
10
|
%w(type title description position active required collapsed_for_agents regexp_for_validation title_in_portal
|
|
11
|
-
visible_in_portal editable_in_portal required_in_portal tag custom_field_options)
|
|
11
|
+
visible_in_portal editable_in_portal required_in_portal tag custom_field_options agent_description)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def ticket_field_params
|
|
@@ -35,6 +35,7 @@ class Zendesk2::CreateTicketField
|
|
|
35
35
|
'updated_at' => timestamp,
|
|
36
36
|
'url' => url_for("/ticket_fields/#{identity}.json"),
|
|
37
37
|
'visible_in_portal' => false,
|
|
38
|
+
'agent_description' => '',
|
|
38
39
|
}.merge(ticket_field_params)
|
|
39
40
|
|
|
40
41
|
data[:ticket_fields][identity] = record
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::CreateTicketForm
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :post
|
|
6
|
+
request_path { |_| '/ticket_forms.json' }
|
|
7
|
+
request_body { |r| { 'ticket_form' => r.ticket_form_params } }
|
|
8
|
+
|
|
9
|
+
def self.accepted_attributes
|
|
10
|
+
%w(name raw_name display_name raw_display_name position active end_user_visible default ticket_field_ids
|
|
11
|
+
in_all_brands restricted_brand_ids)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def ticket_form_params
|
|
15
|
+
Cistern::Hash.slice(params.fetch('ticket_form'), *self.class.accepted_attributes)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def mock
|
|
19
|
+
identity = cistern.serial_id
|
|
20
|
+
|
|
21
|
+
record = {
|
|
22
|
+
'id' => identity,
|
|
23
|
+
'name' => params['name'],
|
|
24
|
+
'raw_name' => '',
|
|
25
|
+
'display_name' => '',
|
|
26
|
+
'raw_display_name' => '',
|
|
27
|
+
'position' => 9999,
|
|
28
|
+
'active' => true,
|
|
29
|
+
'end_user_visible' => true,
|
|
30
|
+
'default' => false,
|
|
31
|
+
'ticket_field_ids' => params['ticket_field_ids'],
|
|
32
|
+
'in_all_brands' => false,
|
|
33
|
+
'restricted_brand_ids' => params['restricted_brand_ids'],
|
|
34
|
+
'url' => url_for("/ticket_forms/#{identity}.json"),
|
|
35
|
+
}.merge(ticket_form_params)
|
|
36
|
+
|
|
37
|
+
data[:ticket_forms][identity] = record
|
|
38
|
+
|
|
39
|
+
mock_response('ticket_form' => record)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::DestroyBrand
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :delete
|
|
6
|
+
request_path { |r| "/brands/#{r.brand_id}.json" }
|
|
7
|
+
|
|
8
|
+
def brand_id
|
|
9
|
+
params.fetch('brand').fetch('id')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def mock
|
|
13
|
+
delete!(:brands, brand_id)
|
|
14
|
+
|
|
15
|
+
mock_response(nil)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::DestroyTicketForm
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :delete
|
|
6
|
+
request_path { |r| "/ticket_forms/#{r.ticket_form_id}.json" }
|
|
7
|
+
|
|
8
|
+
def ticket_form_id
|
|
9
|
+
params.fetch('ticket_form').fetch('id')
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def mock
|
|
13
|
+
delete!(:ticket_forms, ticket_form_id)
|
|
14
|
+
|
|
15
|
+
mock_response(nil)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::GetBrand
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :get
|
|
6
|
+
request_path { |r| "/brands/#{r.brand_id}.json" }
|
|
7
|
+
|
|
8
|
+
def brand_id
|
|
9
|
+
params.fetch('brand').fetch('id').to_i
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def mock
|
|
13
|
+
mock_response('brand' => find!(:brands, brand_id))
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::GetTicketForm
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :get
|
|
6
|
+
request_path { |r| "/ticket_forms/#{r.ticket_form_id}.json" }
|
|
7
|
+
|
|
8
|
+
def ticket_form_id
|
|
9
|
+
params.fetch('ticket_form').fetch('id').to_i
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def mock
|
|
13
|
+
mock_response('ticket_form' => find!(:ticket_forms, ticket_form_id))
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::GetTicketForms
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :get
|
|
6
|
+
request_path { |_| '/ticket_forms.json' }
|
|
7
|
+
request_params do |r|
|
|
8
|
+
result = {}
|
|
9
|
+
result['active'] = r.active unless r.active.nil?
|
|
10
|
+
result['end_user_visible'] = r.end_user_visible unless r.end_user_visible.nil?
|
|
11
|
+
result['fallback_to_default'] = r.fallback_to_default unless r.fallback_to_default.nil?
|
|
12
|
+
result['associated_to_brand'] = r.associated_to_brand unless r.associated_to_brand.nil?
|
|
13
|
+
result
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
page_params!
|
|
17
|
+
|
|
18
|
+
def active
|
|
19
|
+
params['active']
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def end_user_visible
|
|
23
|
+
params['end_user_visible']
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def fallback_to_default
|
|
27
|
+
params['fallback_to_default']
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def associated_to_brand
|
|
31
|
+
params['associated_to_brand']
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def mock
|
|
35
|
+
page(:ticket_forms)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -45,6 +45,10 @@ class Zendesk2::HelpCenter::Article
|
|
|
45
45
|
attribute :vote_count, type: :integer # ro:yes required:no
|
|
46
46
|
# @return [Integer] The total sum of votes on this article
|
|
47
47
|
attribute :vote_sum, type: :integer # ro:yes required:no
|
|
48
|
+
# @return [Integer] The id of the user segment which defines who can see this article
|
|
49
|
+
attribute :user_segment_id, type: :integer, default: nil # ro:no required:yes
|
|
50
|
+
# @return [Integer] The id of the permission group which defines who can edit and publish this article
|
|
51
|
+
attribute :permission_group_id, type: :integer # ro:no required:yes
|
|
48
52
|
|
|
49
53
|
assoc_accessor :section, collection: :help_center_sections
|
|
50
54
|
|
|
@@ -62,7 +66,7 @@ class Zendesk2::HelpCenter::Article
|
|
|
62
66
|
|
|
63
67
|
def save!
|
|
64
68
|
response = if new_record?
|
|
65
|
-
requires :title, :locale, :section_id
|
|
69
|
+
requires :title, :locale, :section_id, :permission_group_id
|
|
66
70
|
|
|
67
71
|
cistern.create_help_center_article('article' => attributes)
|
|
68
72
|
else
|
|
@@ -14,7 +14,19 @@ class Zendesk2::CreateHelpCenterArticle
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def self.accepted_attributes
|
|
17
|
-
%w(
|
|
17
|
+
%w(
|
|
18
|
+
author_id
|
|
19
|
+
body
|
|
20
|
+
comments_disabled
|
|
21
|
+
draft
|
|
22
|
+
label_names
|
|
23
|
+
locale
|
|
24
|
+
position
|
|
25
|
+
promoted
|
|
26
|
+
section_id
|
|
27
|
+
title user_segment_id
|
|
28
|
+
permission_group_id
|
|
29
|
+
)
|
|
18
30
|
end
|
|
19
31
|
|
|
20
32
|
def article_params
|
|
@@ -32,24 +44,26 @@ class Zendesk2::CreateHelpCenterArticle
|
|
|
32
44
|
position = data[:help_center_articles].values.select { |a| a['section_id'] == section_id }.size
|
|
33
45
|
|
|
34
46
|
record = {
|
|
35
|
-
'id'
|
|
36
|
-
'url'
|
|
37
|
-
'html_url'
|
|
38
|
-
'author_id'
|
|
39
|
-
'comments_disabled'
|
|
40
|
-
'label_names'
|
|
41
|
-
'draft'
|
|
42
|
-
'promoted'
|
|
43
|
-
'position'
|
|
44
|
-
'vote_sum'
|
|
45
|
-
'vote_count'
|
|
46
|
-
'section_id'
|
|
47
|
-
'created_at'
|
|
48
|
-
'updated_at'
|
|
49
|
-
'title'
|
|
50
|
-
'body'
|
|
51
|
-
'source_locale'
|
|
52
|
-
'outdated'
|
|
47
|
+
'id' => identity,
|
|
48
|
+
'url' => url_for("/help_center/#{locale}/articles/#{identity}.json"),
|
|
49
|
+
'html_url' => html_url_for("/hc/#{locale}/articles/#{identity}.json"),
|
|
50
|
+
'author_id' => cistern.current_user['id'],
|
|
51
|
+
'comments_disabled' => false,
|
|
52
|
+
'label_names' => [],
|
|
53
|
+
'draft' => false,
|
|
54
|
+
'promoted' => false,
|
|
55
|
+
'position' => position,
|
|
56
|
+
'vote_sum' => 0,
|
|
57
|
+
'vote_count' => 0,
|
|
58
|
+
'section_id' => section_id,
|
|
59
|
+
'created_at' => timestamp,
|
|
60
|
+
'updated_at' => timestamp,
|
|
61
|
+
'title' => '',
|
|
62
|
+
'body' => '',
|
|
63
|
+
'source_locale' => locale,
|
|
64
|
+
'outdated' => false,
|
|
65
|
+
'user_segment_id' => 0,
|
|
66
|
+
'permission_group_id' => 0,
|
|
53
67
|
}.merge(article_params)
|
|
54
68
|
|
|
55
69
|
data[:help_center_articles][identity] = record
|
data/lib/zendesk2/mock.rb
CHANGED
|
@@ -7,6 +7,7 @@ class Zendesk2::Mock
|
|
|
7
7
|
def self.data
|
|
8
8
|
@data ||= Hash.new do |h, k|
|
|
9
9
|
h[k] = {
|
|
10
|
+
brands: {},
|
|
10
11
|
categories: {},
|
|
11
12
|
forums: {},
|
|
12
13
|
groups: {},
|
|
@@ -24,6 +25,7 @@ class Zendesk2::Mock
|
|
|
24
25
|
ticket_audits: {},
|
|
25
26
|
ticket_comments: {},
|
|
26
27
|
ticket_fields: {},
|
|
28
|
+
ticket_forms: {},
|
|
27
29
|
ticket_metrics: {},
|
|
28
30
|
tickets: {},
|
|
29
31
|
topic_comments: {},
|
data/lib/zendesk2/ticket.rb
CHANGED
|
@@ -57,6 +57,10 @@ class Zendesk2::Ticket
|
|
|
57
57
|
attribute :url, type: :string
|
|
58
58
|
# @return [Hash] This object explains how the ticket was created
|
|
59
59
|
attribute :via
|
|
60
|
+
# @return [Integer] Enterprise only. The id of the ticket form to render for the ticket
|
|
61
|
+
attribute :ticket_form_id
|
|
62
|
+
# @return [Integer] Enterprise only. The id of the brand this ticket is associated with
|
|
63
|
+
attribute :brand_id
|
|
60
64
|
|
|
61
65
|
# @return [Zendesk2::Organization] organization assigned to ticket
|
|
62
66
|
assoc_reader :organization
|
|
@@ -45,6 +45,8 @@ class Zendesk2::TicketField
|
|
|
45
45
|
attribute :url, type: :string
|
|
46
46
|
# @return [Boolean] Whether this field is available to end users
|
|
47
47
|
attribute :visible_in_portal, type: :boolean
|
|
48
|
+
# @return [String] A description of the ticket field that only agents can see
|
|
49
|
+
attribute :agent_description, type: :string
|
|
48
50
|
|
|
49
51
|
def save!
|
|
50
52
|
data = if new_record?
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::TicketForm
|
|
3
|
+
include Zendesk2::Model
|
|
4
|
+
|
|
5
|
+
extend Zendesk2::Attributes
|
|
6
|
+
|
|
7
|
+
# @return [integer] Automatically assigned upon creation
|
|
8
|
+
identity :id, type: :integer
|
|
9
|
+
|
|
10
|
+
# @return [String] The name of the form
|
|
11
|
+
attribute :name, type: :string
|
|
12
|
+
# @return [String] The dynamic content placeholder, if present, or the "name" value, if not
|
|
13
|
+
attribute :raw_name, type: :string
|
|
14
|
+
# @return [String] The name of the form that is displayed to an end user
|
|
15
|
+
attribute :display_name, type: :string
|
|
16
|
+
# @return [String] The dynamic content placeholder, if present, or the "display_name" value, if not
|
|
17
|
+
attribute :raw_display_name, type: :string
|
|
18
|
+
# @return [Integer] The position of this form among other forms in the account, i.e. dropdown
|
|
19
|
+
attribute :position, type: :integer
|
|
20
|
+
# @return [Boolean] If the form is set as active
|
|
21
|
+
attribute :active, type: :boolean
|
|
22
|
+
# @return [Boolean] Is the form visible to the end user
|
|
23
|
+
attribute :end_user_visible, type: :boolean
|
|
24
|
+
# @return [Boolean] Is the form the default form for this account
|
|
25
|
+
attribute :default, type: :boolean
|
|
26
|
+
# @return [Array] ids of all ticket fields which are in this ticket form
|
|
27
|
+
attribute :ticket_field_ids, type: :array
|
|
28
|
+
# @return [Boolean] Is the form available for use in all brands on this account
|
|
29
|
+
attribute :in_all_brands, type: :boolean
|
|
30
|
+
# @return [Array] ids of all brands that this ticket form is restricted to
|
|
31
|
+
attribute :restricted_brand_ids, type: :array
|
|
32
|
+
|
|
33
|
+
def save!
|
|
34
|
+
data = if new_record?
|
|
35
|
+
requires :name
|
|
36
|
+
|
|
37
|
+
cistern.create_ticket_form('ticket_form' => attributes)
|
|
38
|
+
else
|
|
39
|
+
requires :identity
|
|
40
|
+
|
|
41
|
+
cistern.update_ticket_form('ticket_form' => attributes)
|
|
42
|
+
end.body['ticket_form']
|
|
43
|
+
|
|
44
|
+
merge_attributes(data)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def destroy!
|
|
48
|
+
requires :identity
|
|
49
|
+
|
|
50
|
+
cistern.destroy_ticket_form('ticket_form' => { 'id' => identity })
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::TicketForms
|
|
3
|
+
include Zendesk2::Collection
|
|
4
|
+
|
|
5
|
+
include Zendesk2::Searchable
|
|
6
|
+
|
|
7
|
+
model Zendesk2::TicketForm
|
|
8
|
+
|
|
9
|
+
attribute :count, type: :integer
|
|
10
|
+
|
|
11
|
+
self.collection_method = :get_ticket_forms
|
|
12
|
+
self.collection_root = 'ticket_forms'
|
|
13
|
+
self.model_method = :get_ticket_form
|
|
14
|
+
self.model_root = 'ticket_form'
|
|
15
|
+
self.search_type = 'ticket_form'
|
|
16
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::UpdateBrand
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :put
|
|
6
|
+
request_path { |r| "/brands/#{r.brand_id}.json" }
|
|
7
|
+
request_body { |r| { 'brand' => r.brand_params } }
|
|
8
|
+
|
|
9
|
+
def brand_id
|
|
10
|
+
params.fetch('brand').fetch('id')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def brand_params
|
|
14
|
+
Cistern::Hash.slice(params.fetch('brand'), *Zendesk2::CreateTicketForm.accepted_attributes)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def mock
|
|
18
|
+
mock_response('brand' => find!(:brands, brand_id).merge!(brand_params))
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
class Zendesk2::UpdateTicketForm
|
|
3
|
+
include Zendesk2::Request
|
|
4
|
+
|
|
5
|
+
request_method :put
|
|
6
|
+
request_path { |r| "/ticket_forms/#{r.ticket_form_id}.json" }
|
|
7
|
+
request_body { |r| { 'ticket_form' => r.ticket_form_params } }
|
|
8
|
+
|
|
9
|
+
def ticket_form_id
|
|
10
|
+
params.fetch('ticket_form').fetch('id')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def ticket_form_params
|
|
14
|
+
Cistern::Hash.slice(params.fetch('ticket_form'), *Zendesk2::CreateTicketForm.accepted_attributes)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def mock
|
|
18
|
+
mock_response('ticket_form' => find!(:ticket_forms, ticket_form_id).merge!(ticket_form_params))
|
|
19
|
+
end
|
|
20
|
+
end
|
data/lib/zendesk2/version.rb
CHANGED
data/spec/brands_spec.rb
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe 'brands' do
|
|
5
|
+
let(:client) { create_client }
|
|
6
|
+
|
|
7
|
+
include_examples 'zendesk#resource', collection: -> { client.brands },
|
|
8
|
+
create_params: -> { { name: mock_uuid } },
|
|
9
|
+
update_params: -> { { name: mock_uuid } },
|
|
10
|
+
paged: false,
|
|
11
|
+
search: false
|
|
12
|
+
end
|
|
@@ -13,7 +13,8 @@ describe 'help_center/articles' do
|
|
|
13
13
|
|
|
14
14
|
include_examples 'zendesk#resource',
|
|
15
15
|
collection: -> { client.help_center_articles },
|
|
16
|
-
create_params:
|
|
16
|
+
create_params:
|
|
17
|
+
-> { { title: mock_uuid, locale: 'en-us', section: section, permission_group_id: 0 } },
|
|
17
18
|
update_params: -> { { title: mock_uuid } },
|
|
18
19
|
search_params: -> { Cistern::Hash.slice(create_params, :title) },
|
|
19
20
|
search: true
|
|
@@ -13,11 +13,14 @@ describe 'help_center/categories' do
|
|
|
13
13
|
context 'with a category, sections, and articles' do
|
|
14
14
|
let!(:category) { client.help_center_categories.create!(name: mock_uuid, locale: 'en-us') }
|
|
15
15
|
let!(:section) { category.sections.create!(name: mock_uuid, locale: 'en-us') }
|
|
16
|
-
let!(:articles)
|
|
16
|
+
let!(:articles) do
|
|
17
|
+
Array.new(2) { section.articles.create(title: mock_uuid, locale: 'en-us', permission_group_id: 0) }
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
before do
|
|
19
21
|
client.help_center_categories.create!(name: mock_uuid, locale: 'en-us')
|
|
20
|
-
.sections.create!(name: mock_uuid, locale: 'en-us')
|
|
22
|
+
.sections.create!(name: mock_uuid, locale: 'en-us')
|
|
23
|
+
.articles.create!(title: mock_uuid, locale: 'en-us', permission_group_id: 0)
|
|
21
24
|
end
|
|
22
25
|
|
|
23
26
|
it 'lists sections within a category' do
|
|
@@ -18,11 +18,14 @@ describe 'help_center/sections' do
|
|
|
18
18
|
|
|
19
19
|
context 'with a category, sections, and articles' do
|
|
20
20
|
let!(:section) { category.sections.create!(name: mock_uuid, locale: 'en-us') }
|
|
21
|
-
let!(:articles)
|
|
21
|
+
let!(:articles) do
|
|
22
|
+
Array.new(2) { section.articles.create(title: mock_uuid, locale: 'en-us', permission_group_id: 0) }
|
|
23
|
+
end
|
|
22
24
|
|
|
23
25
|
before do
|
|
24
26
|
client.help_center_categories.create!(name: mock_uuid, locale: 'en-us')
|
|
25
|
-
.sections.create!(name: mock_uuid, locale: 'en-us')
|
|
27
|
+
.sections.create!(name: mock_uuid, locale: 'en-us')
|
|
28
|
+
.articles.create!(title: mock_uuid, locale: 'en-us', permission_group_id: 0)
|
|
26
29
|
end
|
|
27
30
|
|
|
28
31
|
it 'lists articles within a section' do
|
|
@@ -29,7 +29,9 @@ describe 'help_center/translations' do
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
describe 'by article' do
|
|
32
|
-
let!(:article)
|
|
32
|
+
let!(:article) do
|
|
33
|
+
client.help_center_articles.create!(title: mock_uuid, locale: 'en-us', section: section, permission_group_id: 0)
|
|
34
|
+
end
|
|
33
35
|
|
|
34
36
|
include_examples 'zendesk#resource',
|
|
35
37
|
collection: -> { article.translations },
|
data/spec/ticket_fields_spec.rb
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'spec_helper'
|
|
3
|
+
|
|
4
|
+
describe 'ticket_forms' do
|
|
5
|
+
let(:client) { create_client }
|
|
6
|
+
|
|
7
|
+
include_examples 'zendesk#resource', collection: -> { client.ticket_forms },
|
|
8
|
+
create_params: -> { { name: mock_uuid } },
|
|
9
|
+
update_params: -> { { name: mock_uuid } },
|
|
10
|
+
paged: false
|
|
11
|
+
end
|
data/spec/tickets_spec.rb
CHANGED
|
@@ -122,6 +122,22 @@ describe 'Zendesk2' do
|
|
|
122
122
|
expect(ticket.priority).to eq('urgent')
|
|
123
123
|
expect(client.tickets.get!(ticket.id).priority).to eq(priority)
|
|
124
124
|
end
|
|
125
|
+
|
|
126
|
+
it 'should set ticket_form_id' do
|
|
127
|
+
ticket_form_id = 42
|
|
128
|
+
|
|
129
|
+
ticket = client.tickets.create!(subject: mock_uuid, description: mock_uuid, ticket_form_id: ticket_form_id)
|
|
130
|
+
|
|
131
|
+
expect(ticket.ticket_form_id).to eq(42)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
it 'should set brand_id' do
|
|
135
|
+
brand_id = 42
|
|
136
|
+
|
|
137
|
+
ticket = client.tickets.create!(subject: mock_uuid, description: mock_uuid, brand_id: brand_id)
|
|
138
|
+
|
|
139
|
+
expect(ticket.brand_id).to eq(42)
|
|
140
|
+
end
|
|
125
141
|
end
|
|
126
142
|
|
|
127
143
|
describe 'with a created ticket' do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zendesk2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.13.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josh Lane
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2019-08-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cistern
|
|
@@ -106,10 +106,13 @@ files:
|
|
|
106
106
|
- lib/zendesk2.rb
|
|
107
107
|
- lib/zendesk2/attributes.rb
|
|
108
108
|
- lib/zendesk2/audit_event.rb
|
|
109
|
+
- lib/zendesk2/brand.rb
|
|
110
|
+
- lib/zendesk2/brands.rb
|
|
109
111
|
- lib/zendesk2/categories.rb
|
|
110
112
|
- lib/zendesk2/category.rb
|
|
111
113
|
- lib/zendesk2/client.rb
|
|
112
114
|
- lib/zendesk2/collection.rb
|
|
115
|
+
- lib/zendesk2/create_brand.rb
|
|
113
116
|
- lib/zendesk2/create_category.rb
|
|
114
117
|
- lib/zendesk2/create_forum.rb
|
|
115
118
|
- lib/zendesk2/create_group.rb
|
|
@@ -117,12 +120,14 @@ files:
|
|
|
117
120
|
- lib/zendesk2/create_organization.rb
|
|
118
121
|
- lib/zendesk2/create_ticket.rb
|
|
119
122
|
- lib/zendesk2/create_ticket_field.rb
|
|
123
|
+
- lib/zendesk2/create_ticket_form.rb
|
|
120
124
|
- lib/zendesk2/create_topic.rb
|
|
121
125
|
- lib/zendesk2/create_topic_comment.rb
|
|
122
126
|
- lib/zendesk2/create_user.rb
|
|
123
127
|
- lib/zendesk2/create_user_field.rb
|
|
124
128
|
- lib/zendesk2/create_user_identity.rb
|
|
125
129
|
- lib/zendesk2/create_view.rb
|
|
130
|
+
- lib/zendesk2/destroy_brand.rb
|
|
126
131
|
- lib/zendesk2/destroy_category.rb
|
|
127
132
|
- lib/zendesk2/destroy_forum.rb
|
|
128
133
|
- lib/zendesk2/destroy_group.rb
|
|
@@ -130,6 +135,7 @@ files:
|
|
|
130
135
|
- lib/zendesk2/destroy_organization.rb
|
|
131
136
|
- lib/zendesk2/destroy_ticket.rb
|
|
132
137
|
- lib/zendesk2/destroy_ticket_field.rb
|
|
138
|
+
- lib/zendesk2/destroy_ticket_form.rb
|
|
133
139
|
- lib/zendesk2/destroy_topic.rb
|
|
134
140
|
- lib/zendesk2/destroy_topic_comment.rb
|
|
135
141
|
- lib/zendesk2/destroy_user.rb
|
|
@@ -140,6 +146,8 @@ files:
|
|
|
140
146
|
- lib/zendesk2/forum.rb
|
|
141
147
|
- lib/zendesk2/forums.rb
|
|
142
148
|
- lib/zendesk2/get_assignable_groups.rb
|
|
149
|
+
- lib/zendesk2/get_brand.rb
|
|
150
|
+
- lib/zendesk2/get_brands.rb
|
|
143
151
|
- lib/zendesk2/get_categories.rb
|
|
144
152
|
- lib/zendesk2/get_category.rb
|
|
145
153
|
- lib/zendesk2/get_ccd_tickets.rb
|
|
@@ -163,6 +171,8 @@ files:
|
|
|
163
171
|
- lib/zendesk2/get_ticket_comments.rb
|
|
164
172
|
- lib/zendesk2/get_ticket_field.rb
|
|
165
173
|
- lib/zendesk2/get_ticket_fields.rb
|
|
174
|
+
- lib/zendesk2/get_ticket_form.rb
|
|
175
|
+
- lib/zendesk2/get_ticket_forms.rb
|
|
166
176
|
- lib/zendesk2/get_ticket_metric.rb
|
|
167
177
|
- lib/zendesk2/get_ticket_metrics.rb
|
|
168
178
|
- lib/zendesk2/get_tickets.rb
|
|
@@ -270,6 +280,8 @@ files:
|
|
|
270
280
|
- lib/zendesk2/ticket_create.rb
|
|
271
281
|
- lib/zendesk2/ticket_field.rb
|
|
272
282
|
- lib/zendesk2/ticket_fields.rb
|
|
283
|
+
- lib/zendesk2/ticket_form.rb
|
|
284
|
+
- lib/zendesk2/ticket_forms.rb
|
|
273
285
|
- lib/zendesk2/ticket_metric.rb
|
|
274
286
|
- lib/zendesk2/ticket_metrics.rb
|
|
275
287
|
- lib/zendesk2/ticket_notification.rb
|
|
@@ -279,6 +291,7 @@ files:
|
|
|
279
291
|
- lib/zendesk2/topic_comment.rb
|
|
280
292
|
- lib/zendesk2/topic_comments.rb
|
|
281
293
|
- lib/zendesk2/topics.rb
|
|
294
|
+
- lib/zendesk2/update_brand.rb
|
|
282
295
|
- lib/zendesk2/update_category.rb
|
|
283
296
|
- lib/zendesk2/update_forum.rb
|
|
284
297
|
- lib/zendesk2/update_group.rb
|
|
@@ -286,6 +299,7 @@ files:
|
|
|
286
299
|
- lib/zendesk2/update_request.rb
|
|
287
300
|
- lib/zendesk2/update_ticket.rb
|
|
288
301
|
- lib/zendesk2/update_ticket_field.rb
|
|
302
|
+
- lib/zendesk2/update_ticket_form.rb
|
|
289
303
|
- lib/zendesk2/update_topic.rb
|
|
290
304
|
- lib/zendesk2/update_user.rb
|
|
291
305
|
- lib/zendesk2/update_user_field.rb
|
|
@@ -300,6 +314,7 @@ files:
|
|
|
300
314
|
- lib/zendesk2/version.rb
|
|
301
315
|
- lib/zendesk2/view.rb
|
|
302
316
|
- lib/zendesk2/views.rb
|
|
317
|
+
- spec/brands_spec.rb
|
|
303
318
|
- spec/categories_spec.rb
|
|
304
319
|
- spec/client_spec.rb
|
|
305
320
|
- spec/forums_spec.rb
|
|
@@ -320,6 +335,7 @@ files:
|
|
|
320
335
|
- spec/support/client_helper.rb
|
|
321
336
|
- spec/support/data_helper.rb
|
|
322
337
|
- spec/ticket_fields_spec.rb
|
|
338
|
+
- spec/ticket_forms_spec.rb
|
|
323
339
|
- spec/tickets_spec.rb
|
|
324
340
|
- spec/topic_comments_spec.rb
|
|
325
341
|
- spec/topics_spec.rb
|
|
@@ -348,12 +364,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
348
364
|
- !ruby/object:Gem::Version
|
|
349
365
|
version: '0'
|
|
350
366
|
requirements: []
|
|
351
|
-
|
|
352
|
-
rubygems_version: 2.5.1
|
|
367
|
+
rubygems_version: 3.0.1
|
|
353
368
|
signing_key:
|
|
354
369
|
specification_version: 4
|
|
355
370
|
summary: Zendesk V2 API client
|
|
356
371
|
test_files:
|
|
372
|
+
- spec/brands_spec.rb
|
|
357
373
|
- spec/categories_spec.rb
|
|
358
374
|
- spec/client_spec.rb
|
|
359
375
|
- spec/forums_spec.rb
|
|
@@ -374,6 +390,7 @@ test_files:
|
|
|
374
390
|
- spec/support/client_helper.rb
|
|
375
391
|
- spec/support/data_helper.rb
|
|
376
392
|
- spec/ticket_fields_spec.rb
|
|
393
|
+
- spec/ticket_forms_spec.rb
|
|
377
394
|
- spec/tickets_spec.rb
|
|
378
395
|
- spec/topic_comments_spec.rb
|
|
379
396
|
- spec/topics_spec.rb
|
|
@@ -382,4 +399,3 @@ test_files:
|
|
|
382
399
|
- spec/users_spec.rb
|
|
383
400
|
- spec/views_spec.rb
|
|
384
401
|
- spec/zendesk2_spec.rb
|
|
385
|
-
has_rdoc:
|