zendesk2 1.9.0 → 1.10.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 +4 -4
- data/.rubocop.yml +30 -0
- data/.travis.yml +3 -1
- data/Gemfile +4 -5
- data/Guardfile +4 -3
- data/Rakefile +4 -3
- data/lib/zendesk2.rb +9 -6
- data/lib/zendesk2/attributes.rb +11 -8
- data/lib/zendesk2/audit_event.rb +5 -3
- data/lib/zendesk2/categories.rb +4 -3
- data/lib/zendesk2/category.rb +10 -5
- data/lib/zendesk2/client.rb +3 -3
- data/lib/zendesk2/collection.rb +35 -21
- data/lib/zendesk2/create_category.rb +10 -9
- data/lib/zendesk2/create_forum.rb +11 -10
- data/lib/zendesk2/create_group.rb +13 -12
- data/lib/zendesk2/create_membership.rb +21 -20
- data/lib/zendesk2/create_organization.rb +24 -18
- data/lib/zendesk2/create_ticket.rb +60 -56
- data/lib/zendesk2/create_ticket_field.rb +24 -22
- data/lib/zendesk2/create_topic.rb +11 -10
- data/lib/zendesk2/create_topic_comment.rb +12 -11
- data/lib/zendesk2/create_user.rb +54 -41
- data/lib/zendesk2/create_user_field.rb +22 -21
- data/lib/zendesk2/create_user_identity.rb +18 -15
- data/lib/zendesk2/create_view.rb +62 -62
- data/lib/zendesk2/destroy_category.rb +2 -1
- data/lib/zendesk2/destroy_forum.rb +2 -1
- data/lib/zendesk2/destroy_group.rb +3 -2
- data/lib/zendesk2/destroy_membership.rb +7 -5
- data/lib/zendesk2/destroy_organization.rb +3 -2
- data/lib/zendesk2/destroy_ticket.rb +3 -2
- data/lib/zendesk2/destroy_ticket_field.rb +3 -2
- data/lib/zendesk2/destroy_topic.rb +3 -2
- data/lib/zendesk2/destroy_topic_comment.rb +4 -3
- data/lib/zendesk2/destroy_user.rb +11 -10
- data/lib/zendesk2/destroy_user_field.rb +3 -2
- data/lib/zendesk2/destroy_user_identity.rb +4 -3
- data/lib/zendesk2/destroy_view.rb +3 -2
- data/lib/zendesk2/error.rb +1 -1
- data/lib/zendesk2/forum.rb +36 -18
- data/lib/zendesk2/forums.rb +4 -3
- data/lib/zendesk2/get_assignable_groups.rb +3 -2
- data/lib/zendesk2/get_categories.rb +2 -1
- data/lib/zendesk2/get_category.rb +3 -2
- data/lib/zendesk2/get_ccd_tickets.rb +4 -3
- data/lib/zendesk2/get_current_user.rb +3 -2
- data/lib/zendesk2/get_forum.rb +3 -2
- data/lib/zendesk2/get_forums.rb +2 -1
- data/lib/zendesk2/get_group.rb +3 -2
- data/lib/zendesk2/get_groups.rb +2 -1
- data/lib/zendesk2/get_membership.rb +3 -2
- data/lib/zendesk2/get_memberships.rb +3 -2
- data/lib/zendesk2/get_organization.rb +3 -2
- data/lib/zendesk2/get_organization_by_external_id.rb +8 -5
- data/lib/zendesk2/get_organization_memberships.rb +5 -2
- data/lib/zendesk2/get_organization_tickets.rb +7 -5
- data/lib/zendesk2/get_organization_users.rb +6 -5
- data/lib/zendesk2/get_organizations.rb +2 -1
- data/lib/zendesk2/get_requested_tickets.rb +5 -4
- data/lib/zendesk2/get_ticket.rb +3 -2
- data/lib/zendesk2/get_ticket_audit.rb +5 -4
- data/lib/zendesk2/get_ticket_audits.rb +4 -3
- data/lib/zendesk2/get_ticket_comments.rb +6 -5
- data/lib/zendesk2/get_ticket_field.rb +3 -2
- data/lib/zendesk2/get_ticket_fields.rb +2 -1
- data/lib/zendesk2/get_ticket_metric.rb +4 -3
- data/lib/zendesk2/get_ticket_metrics.rb +3 -2
- data/lib/zendesk2/get_tickets.rb +2 -1
- data/lib/zendesk2/get_topic.rb +3 -2
- data/lib/zendesk2/get_topic_comment.rb +4 -3
- data/lib/zendesk2/get_topic_comments.rb +5 -4
- data/lib/zendesk2/get_topics.rb +2 -1
- data/lib/zendesk2/get_user.rb +7 -7
- data/lib/zendesk2/get_user_field.rb +3 -2
- data/lib/zendesk2/get_user_fields.rb +3 -2
- data/lib/zendesk2/get_user_identities.rb +4 -3
- data/lib/zendesk2/get_user_identity.rb +4 -3
- data/lib/zendesk2/get_user_memberships.rb +4 -3
- data/lib/zendesk2/get_user_organizations.rb +5 -4
- data/lib/zendesk2/get_users.rb +3 -2
- data/lib/zendesk2/get_view.rb +3 -2
- data/lib/zendesk2/get_view_tickets.rb +19 -16
- data/lib/zendesk2/get_views.rb +2 -1
- data/lib/zendesk2/group.rb +6 -5
- data/lib/zendesk2/groups.rb +7 -6
- data/lib/zendesk2/help_center.rb +15 -0
- data/lib/zendesk2/help_center/access_policy.rb +3 -2
- data/lib/zendesk2/help_center/article.rb +10 -7
- data/lib/zendesk2/help_center/articles.rb +7 -7
- data/lib/zendesk2/help_center/categories.rb +3 -2
- data/lib/zendesk2/help_center/category.rb +8 -7
- data/lib/zendesk2/help_center/create_help_center_article.rb +31 -29
- data/lib/zendesk2/help_center/create_help_center_category.rb +17 -16
- data/lib/zendesk2/help_center/create_help_center_post.rb +37 -0
- data/lib/zendesk2/help_center/create_help_center_section.rb +32 -31
- data/lib/zendesk2/help_center/create_help_center_topic.rb +36 -0
- data/lib/zendesk2/help_center/create_help_center_translation.rb +15 -14
- data/lib/zendesk2/help_center/destroy_help_center_article.rb +3 -2
- data/lib/zendesk2/help_center/destroy_help_center_category.rb +3 -2
- data/lib/zendesk2/help_center/destroy_help_center_post.rb +15 -0
- data/lib/zendesk2/help_center/destroy_help_center_section.rb +3 -2
- data/lib/zendesk2/help_center/destroy_help_center_topic.rb +15 -0
- data/lib/zendesk2/help_center/destroy_help_center_translation.rb +2 -1
- data/lib/zendesk2/help_center/get_help_center_access_policy.rb +6 -5
- data/lib/zendesk2/help_center/get_help_center_article.rb +7 -9
- data/lib/zendesk2/help_center/get_help_center_articles.rb +3 -2
- data/lib/zendesk2/help_center/get_help_center_categories.rb +6 -2
- data/lib/zendesk2/help_center/get_help_center_categories_articles.rb +8 -7
- data/lib/zendesk2/help_center/get_help_center_categories_sections.rb +6 -5
- data/lib/zendesk2/help_center/get_help_center_category.rb +7 -9
- data/lib/zendesk2/help_center/get_help_center_post.rb +19 -0
- data/lib/zendesk2/help_center/get_help_center_posts.rb +28 -0
- data/lib/zendesk2/help_center/get_help_center_section.rb +8 -10
- data/lib/zendesk2/help_center/get_help_center_sections.rb +3 -2
- data/lib/zendesk2/help_center/get_help_center_sections_articles.rb +9 -8
- data/lib/zendesk2/help_center/get_help_center_topic.rb +14 -0
- data/lib/zendesk2/help_center/get_help_center_topics.rb +10 -0
- data/lib/zendesk2/help_center/get_help_center_translation.rb +5 -4
- data/lib/zendesk2/help_center/get_help_center_translations.rb +7 -6
- data/lib/zendesk2/help_center/post.rb +72 -0
- data/lib/zendesk2/help_center/posts.rb +18 -0
- data/lib/zendesk2/help_center/search_help_center_articles.rb +8 -7
- data/lib/zendesk2/help_center/section.rb +11 -11
- data/lib/zendesk2/help_center/sections.rb +7 -6
- data/lib/zendesk2/help_center/topic.rb +52 -0
- data/lib/zendesk2/help_center/topics.rb +13 -0
- data/lib/zendesk2/help_center/translation.rb +8 -5
- data/lib/zendesk2/help_center/translation_source.rb +16 -13
- data/lib/zendesk2/help_center/translations.rb +3 -2
- data/lib/zendesk2/help_center/update_help_center_access_policy.rb +8 -7
- data/lib/zendesk2/help_center/update_help_center_article.rb +9 -11
- data/lib/zendesk2/help_center/update_help_center_category.rb +9 -11
- data/lib/zendesk2/help_center/update_help_center_post.rb +20 -0
- data/lib/zendesk2/help_center/update_help_center_section.rb +9 -11
- data/lib/zendesk2/help_center/update_help_center_topic.rb +20 -0
- data/lib/zendesk2/help_center/update_help_center_translation.rb +4 -3
- data/lib/zendesk2/logger.rb +3 -2
- data/lib/zendesk2/mark_membership_default.rb +7 -6
- data/lib/zendesk2/mark_user_identity_primary.rb +7 -6
- data/lib/zendesk2/membership.rb +10 -8
- data/lib/zendesk2/memberships.rb +18 -12
- data/lib/zendesk2/mock.rb +39 -34
- data/lib/zendesk2/model.rb +14 -3
- data/lib/zendesk2/organization.rb +7 -7
- data/lib/zendesk2/organizations.rb +14 -12
- data/lib/zendesk2/paged_collection.rb +40 -36
- data/lib/zendesk2/rate_limit.rb +4 -3
- data/lib/zendesk2/real.rb +25 -22
- data/lib/zendesk2/request.rb +78 -82
- data/lib/zendesk2/search.rb +8 -7
- data/lib/zendesk2/search_organization.rb +14 -14
- data/lib/zendesk2/search_user.rb +41 -37
- data/lib/zendesk2/searchable.rb +36 -26
- data/lib/zendesk2/ticket.rb +20 -18
- data/lib/zendesk2/ticket_audit.rb +5 -4
- data/lib/zendesk2/ticket_audits.rb +10 -11
- data/lib/zendesk2/ticket_change.rb +10 -11
- data/lib/zendesk2/ticket_comment.rb +2 -1
- data/lib/zendesk2/ticket_comment_privacy_change.rb +12 -14
- data/lib/zendesk2/ticket_comments.rb +7 -6
- data/lib/zendesk2/ticket_create.rb +8 -9
- data/lib/zendesk2/ticket_field.rb +5 -4
- data/lib/zendesk2/ticket_fields.rb +4 -3
- data/lib/zendesk2/ticket_metric.rb +2 -2
- data/lib/zendesk2/ticket_metrics.rb +3 -2
- data/lib/zendesk2/ticket_notification.rb +12 -13
- data/lib/zendesk2/ticket_voice_comment.rb +28 -29
- data/lib/zendesk2/tickets.rb +8 -7
- data/lib/zendesk2/topic.rb +49 -22
- data/lib/zendesk2/topic_comment.rb +12 -9
- data/lib/zendesk2/topic_comments.rb +4 -3
- data/lib/zendesk2/topics.rb +4 -3
- data/lib/zendesk2/update_category.rb +8 -6
- data/lib/zendesk2/update_forum.rb +5 -4
- data/lib/zendesk2/update_group.rb +5 -4
- data/lib/zendesk2/update_organization.rb +18 -9
- data/lib/zendesk2/update_request.rb +6 -5
- data/lib/zendesk2/update_ticket.rb +39 -38
- data/lib/zendesk2/update_ticket_field.rb +5 -4
- data/lib/zendesk2/update_topic.rb +5 -4
- data/lib/zendesk2/update_user.rb +39 -31
- data/lib/zendesk2/update_user_field.rb +4 -3
- data/lib/zendesk2/update_user_identity.rb +7 -6
- data/lib/zendesk2/update_view.rb +38 -34
- data/lib/zendesk2/user.rb +41 -37
- data/lib/zendesk2/user_field.rb +9 -6
- data/lib/zendesk2/user_fields.rb +4 -3
- data/lib/zendesk2/user_identities.rb +4 -3
- data/lib/zendesk2/user_identity.rb +12 -9
- data/lib/zendesk2/users.rb +5 -4
- data/lib/zendesk2/version.rb +2 -1
- data/lib/zendesk2/view.rb +24 -13
- data/lib/zendesk2/views.rb +3 -2
- data/spec/categories_spec.rb +63 -60
- data/spec/client_spec.rb +6 -5
- data/spec/forums_spec.rb +64 -61
- data/spec/groups_spec.rb +7 -8
- data/spec/help_center/articles_spec.rb +22 -26
- data/spec/help_center/categories_spec.rb +26 -27
- data/spec/help_center/posts_spec.rb +39 -0
- data/spec/help_center/sections_spec.rb +32 -33
- data/spec/help_center/topics_spec.rb +13 -0
- data/spec/lib/paged_collection_spec.rb +11 -11
- data/spec/lib/rate_limit_spec.rb +9 -8
- data/spec/memberships_spec.rb +38 -27
- data/spec/organizations_spec.rb +92 -87
- data/spec/shared/zendesk_resource.rb +40 -25
- data/spec/spec_helper.rb +8 -13
- data/spec/support/client_helper.rb +5 -4
- data/spec/support/data_helper.rb +1 -0
- data/spec/ticket_fields_spec.rb +6 -7
- data/spec/tickets_spec.rb +69 -58
- data/spec/topic_comments_spec.rb +7 -8
- data/spec/topics_spec.rb +5 -6
- data/spec/user_fields_spec.rb +7 -7
- data/spec/user_identities_spec.rb +29 -25
- data/spec/users_spec.rb +88 -78
- data/spec/views_spec.rb +45 -34
- data/spec/zendesk2_spec.rb +3 -2
- data/zendesk2.gemspec +15 -14
- metadata +21 -2
@@ -1,13 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::TicketChange < Zendesk2::AuditEvent
|
3
|
+
# @return [Integer] Automatically assigned when creating events
|
4
|
+
identity :id, type: :integer
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
6
|
+
# @return [String] The name of the field that was changed
|
7
|
+
attribute :field_name, type: :string
|
8
|
+
# @return [String] The name of the field that was changed
|
9
|
+
attribute :value, type: :string
|
10
|
+
# @return [Array] The previous value of the field that was changed
|
11
|
+
attribute :previous_value, type: :array, parser: ->(v, _) { [*v] }
|
13
12
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::TicketComment < Zendesk2::AuditEvent
|
2
3
|
# @return [Integer] Automatically assigned when creating events
|
3
4
|
identity :id, type: :integer
|
@@ -19,6 +20,6 @@ class Zendesk2::TicketComment < Zendesk2::AuditEvent
|
|
19
20
|
def author
|
20
21
|
requires :author_id
|
21
22
|
|
22
|
-
|
23
|
+
cistern.users.get(author_id)
|
23
24
|
end
|
24
25
|
end
|
@@ -1,19 +1,17 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::TicketCommentPrivacyChange < AuditEvent
|
3
|
+
# @return [integer] Automatically assigned when creating events
|
4
|
+
identity :id, type: :integer
|
3
5
|
|
4
|
-
|
5
|
-
|
6
|
+
# @return [Integer] The id if the comment that changed privacy
|
7
|
+
attribute :comment_id, type: :integer
|
8
|
+
# @return [Boolean] Tells if the comment was made public or private
|
9
|
+
attribute :public, type: :boolean
|
6
10
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
attribute :public, type: :boolean
|
11
|
+
# @return [Zendesk2::TicketComment] ticket comment pertaining to this privacy change
|
12
|
+
def comment
|
13
|
+
requires :comment_id
|
11
14
|
|
12
|
-
|
13
|
-
def comment
|
14
|
-
requires :comment_id
|
15
|
-
|
16
|
-
self.cistern.ticket_comments.get(self.comment_id)
|
17
|
-
end
|
15
|
+
cistern.ticket_comments.get(comment_id)
|
18
16
|
end
|
19
17
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::TicketComments
|
2
3
|
include Zendesk2::Collection
|
3
4
|
|
@@ -8,19 +9,19 @@ class Zendesk2::TicketComments
|
|
8
9
|
attribute :ticket_id, type: :integer
|
9
10
|
|
10
11
|
self.collection_method = :get_ticket_comments
|
11
|
-
self.collection_root =
|
12
|
+
self.collection_root = 'comments'
|
12
13
|
|
13
14
|
def ticket
|
14
|
-
|
15
|
+
cistern.tickets.get(ticket_id)
|
15
16
|
end
|
16
17
|
|
17
|
-
def all(params={})
|
18
|
+
def all(params = {})
|
18
19
|
requires :ticket_id
|
19
20
|
|
20
|
-
body = cistern.send(collection_method, {
|
21
|
+
body = cistern.send(collection_method, { 'ticket_id' => ticket_id }.merge(params)).body
|
21
22
|
|
22
|
-
collection =
|
23
|
-
collection.merge_attributes(Cistern::Hash.slice(body,
|
23
|
+
collection = clone.load(body[collection_root])
|
24
|
+
collection.merge_attributes(Cistern::Hash.slice(body, 'count', 'next_page', 'previous_page'))
|
24
25
|
collection
|
25
26
|
end
|
26
27
|
end
|
@@ -1,11 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::TicketCreate < Zendesk2::AuditEvent
|
3
|
+
# @return [integer] Automatically assigned when creating events
|
4
|
+
identity :id, type: :integer
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
end
|
6
|
+
# @return [string] The name of the field that was set
|
7
|
+
attribute :field_name, type: :string
|
8
|
+
# @return [Array] The value of the field that was set
|
9
|
+
attribute :value, parser: ->(v, _) { [*v] }
|
11
10
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::TicketField
|
2
3
|
include Zendesk2::Model
|
3
4
|
|
@@ -49,12 +50,12 @@ class Zendesk2::TicketField
|
|
49
50
|
data = if new_record?
|
50
51
|
requires :type, :title
|
51
52
|
|
52
|
-
cistern.create_ticket_field(
|
53
|
+
cistern.create_ticket_field('ticket_field' => attributes)
|
53
54
|
else
|
54
55
|
requires :identity
|
55
56
|
|
56
|
-
cistern.update_ticket_field(
|
57
|
-
end.body[
|
57
|
+
cistern.update_ticket_field('ticket_field' => attributes)
|
58
|
+
end.body['ticket_field']
|
58
59
|
|
59
60
|
merge_attributes(data)
|
60
61
|
end
|
@@ -62,6 +63,6 @@ class Zendesk2::TicketField
|
|
62
63
|
def destroy!
|
63
64
|
requires :identity
|
64
65
|
|
65
|
-
cistern.destroy_ticket_field(
|
66
|
+
cistern.destroy_ticket_field('ticket_field' => { 'id' => identity })
|
66
67
|
end
|
67
68
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::TicketFields
|
2
3
|
include Zendesk2::Collection
|
3
4
|
|
@@ -8,8 +9,8 @@ class Zendesk2::TicketFields
|
|
8
9
|
attribute :count, type: :integer
|
9
10
|
|
10
11
|
self.collection_method = :get_ticket_fields
|
11
|
-
self.collection_root =
|
12
|
+
self.collection_root = 'ticket_fields'
|
12
13
|
self.model_method = :get_ticket_field
|
13
|
-
self.model_root =
|
14
|
-
self.search_type =
|
14
|
+
self.model_root = 'ticket_field'
|
15
|
+
self.search_type = 'ticket_field'
|
15
16
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::TicketMetric < Cistern::Model
|
2
3
|
extend Zendesk2::Attributes
|
3
4
|
|
@@ -48,7 +49,6 @@ class Zendesk2::TicketMetric < Cistern::Model
|
|
48
49
|
def ticket
|
49
50
|
requires :ticket_id
|
50
51
|
|
51
|
-
|
52
|
+
cistern.tickets.get(ticket_id)
|
52
53
|
end
|
53
|
-
|
54
54
|
end
|
@@ -1,10 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::TicketMetrics < Zendesk2::PagedCollection
|
2
3
|
model Zendesk2::TicketMetric
|
3
4
|
|
4
5
|
attribute :ticket_id, type: :integer
|
5
6
|
|
6
7
|
self.collection_method = :get_ticket_metrics
|
7
|
-
self.collection_root =
|
8
|
+
self.collection_root = 'ticket_metrics'
|
8
9
|
self.model_method = :get_ticket_metric
|
9
|
-
self.model_root =
|
10
|
+
self.model_root = 'ticket_metric'
|
10
11
|
end
|
@@ -1,15 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::TicketNotification < Zendesk2::AuditEvent
|
3
|
+
# @return [Integer] Automatically assigned when creating events
|
4
|
+
identity :id, type: :integer
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
end
|
6
|
+
# @return [String] The message sent to the recipients
|
7
|
+
attribute :body, type: :string
|
8
|
+
# @return [Array] A array of simple object holding the ids and names of the recipients of this notification
|
9
|
+
attribute :recipients, type: :array
|
10
|
+
# @return [String] The subject of the message sent to the recipients
|
11
|
+
attribute :subject, type: :string
|
12
|
+
# @return [Hash] A reference to the trigger that created this notification
|
13
|
+
attribute :via
|
15
14
|
end
|
@@ -1,34 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::TicketVoiceComment < Zendesk2::AuditEvent
|
3
|
+
# @return [Integer] Automatically assigned when creating events
|
4
|
+
identity :id, type: :integer
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
6
|
+
# @return [Array] The attachments on this comment as Attachment objects
|
7
|
+
attribute :attachments, type: :array
|
8
|
+
# @return [Integer] The id of the author of this comment
|
9
|
+
attribute :author_id, type: :integer
|
10
|
+
# @return [String] The actual comment made by the author
|
11
|
+
attribute :body, type: :string
|
12
|
+
# @return [String] A hash of properties about the call
|
13
|
+
attribute :data, type: :string
|
14
|
+
# @return [String] A formatted version of the phone number which dialed the call
|
15
|
+
attribute :formatted_from, type: :string
|
16
|
+
# @return [String] A formatted version of the phone number which answered the call
|
17
|
+
attribute :formatted_to, type: :string
|
18
|
+
# @return [String] The actual comment made by the author formatted to HTML
|
19
|
+
attribute :html_body, type: :string
|
20
|
+
# @return [Boolean] If this is a public comment or an internal agents only note
|
21
|
+
attribute :public, type: :boolean
|
22
|
+
# @return [Boolean] If this comment is trusted or marked as being potentially fraudulent
|
23
|
+
attribute :trusted, type: :boolean
|
24
|
+
# @return [String] Has the value VoiceComment
|
25
|
+
attribute :type, type: :string
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
# @return [Zendesk2::User] event author
|
28
|
+
def author
|
29
|
+
requires :author_id
|
30
30
|
|
31
|
-
|
32
|
-
end
|
31
|
+
cistern.users.get(author_id)
|
33
32
|
end
|
34
33
|
end
|
data/lib/zendesk2/tickets.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::Tickets
|
2
3
|
include Zendesk2::Collection
|
3
4
|
|
@@ -14,12 +15,12 @@ class Zendesk2::Tickets
|
|
14
15
|
assoc_accessor :requester
|
15
16
|
assoc_accessor :collaborator
|
16
17
|
|
17
|
-
self.collection_root =
|
18
|
+
self.collection_root = 'tickets'
|
18
19
|
self.model_method = :get_ticket
|
19
|
-
self.model_root =
|
20
|
-
self.search_type =
|
20
|
+
self.model_root = 'ticket'
|
21
|
+
self.search_type = 'ticket'
|
21
22
|
|
22
|
-
def collection_page(params={})
|
23
|
+
def collection_page(params = {})
|
23
24
|
collection_method = if requester_id
|
24
25
|
:get_requested_tickets
|
25
26
|
elsif collaborator_id
|
@@ -30,10 +31,10 @@ class Zendesk2::Tickets
|
|
30
31
|
:get_tickets
|
31
32
|
end
|
32
33
|
|
33
|
-
body = cistern.send(collection_method, Cistern::Hash.stringify_keys(
|
34
|
+
body = cistern.send(collection_method, Cistern::Hash.stringify_keys(attributes.merge(params))).body
|
34
35
|
|
35
|
-
|
36
|
-
|
36
|
+
load(body[collection_root]) # 'results' is the key for paged searches
|
37
|
+
merge_attributes(Cistern::Hash.slice(body, 'count', 'next_page', 'previous_page'))
|
37
38
|
self
|
38
39
|
end
|
39
40
|
|
data/lib/zendesk2/topic.rb
CHANGED
@@ -1,24 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::Topic
|
2
3
|
include Zendesk2::Model
|
3
4
|
|
4
5
|
extend Zendesk2::Attributes
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
attribute :
|
11
|
-
|
12
|
-
attribute :
|
13
|
-
|
14
|
-
attribute :
|
15
|
-
|
16
|
-
attribute :
|
17
|
-
|
18
|
-
attribute :
|
19
|
-
|
20
|
-
attribute :
|
21
|
-
|
7
|
+
# @return [integer] Automatically assigned upon creation
|
8
|
+
identity :id, type: :integer # ro: yes, required: no
|
9
|
+
|
10
|
+
# @return [string] The API url of this topic
|
11
|
+
attribute :url, type: :string # ro: yes, required: no
|
12
|
+
# @return [string] The title of the topic
|
13
|
+
attribute :title, type: :string # ro: no, required: yes
|
14
|
+
# @return [string] The unescaped body of the topic
|
15
|
+
attribute :body, type: :string # ro: no, required: yes
|
16
|
+
# @return [string] The type of topic. Either "articles", "ideas" or "questions"
|
17
|
+
attribute :topic_type, type: :string # ro: yes, required: no
|
18
|
+
# @return [integer] The id of the user who submitted the topic
|
19
|
+
attribute :submitter_id, type: :integer # ro: no, required: no
|
20
|
+
# @return [integer] The id of the person to last update the topic
|
21
|
+
attribute :updater_id, type: :integer # ro: no, required: no
|
22
|
+
# @return [integer] Forum that the topic is associated to
|
23
|
+
attribute :forum_id, type: :integer # ro: no, required: no
|
24
|
+
# @return [boolean] Whether comments are allowed
|
25
|
+
attribute :locked, type: :boolean # ro: no, required: no
|
26
|
+
# @return [boolean] If the topic is marked as pinned and hence eligible to show up on the front page
|
27
|
+
attribute :pinned, type: :boolean # ro: no, required: no
|
28
|
+
# @return [boolean] Set to true to highlight a topic within its forum
|
29
|
+
attribute :highlighted, type: :boolean # ro: no, required: no
|
30
|
+
# @return [boolean] Set to true if the topic is a question and it has been marked as answered.
|
31
|
+
attribute :answered, type: :boolean # ro: yes, required: no
|
32
|
+
# @return [integer] The number of comments on this topic
|
33
|
+
attribute :comments_count, type: :integer # ro: yes, required: no
|
34
|
+
# @return [array] The search phrases set on the topic
|
35
|
+
attribute :search_phrases, type: :array # ro: no, required: no
|
36
|
+
# @return [integer] The position of this topic relative to other topics in the same forum when the topics are
|
37
|
+
# ordered manually
|
38
|
+
attribute :position, type: :integer # ro: no, required: no
|
39
|
+
# @return [array] The tags set on the topic
|
40
|
+
attribute :tags, type: :array # ro: no, required: no
|
41
|
+
# @return [date] The time the topic was created
|
42
|
+
attribute :created_at, type: :date # ro: yes, required: no
|
43
|
+
# @return [date] The time of the last update of the topic
|
44
|
+
attribute :updated_at, type: :date # ro: yes, required: no
|
45
|
+
# @return [array] The attachments on this comment as Attachment objects
|
46
|
+
attribute :attachments, type: :array # ro: yes, required: no
|
47
|
+
# @return [array] List of upload tokens for adding attachments
|
48
|
+
attribute :uploads, type: :array # ro: no, required: no
|
22
49
|
|
23
50
|
assoc_accessor :submitter, collection: :users
|
24
51
|
assoc_accessor :updater, collection: :users
|
@@ -27,24 +54,24 @@ class Zendesk2::Topic
|
|
27
54
|
def destroy!
|
28
55
|
requires :identity
|
29
56
|
|
30
|
-
cistern.destroy_topic(
|
57
|
+
cistern.destroy_topic('topic' => { 'id' => identity })
|
31
58
|
end
|
32
59
|
|
33
60
|
def save!
|
34
61
|
data = if new_record?
|
35
62
|
requires :title, :body
|
36
63
|
|
37
|
-
cistern.create_topic(
|
64
|
+
cistern.create_topic('topic' => attributes)
|
38
65
|
else
|
39
66
|
requires :identity
|
40
67
|
|
41
|
-
cistern.update_topic(
|
42
|
-
end
|
68
|
+
cistern.update_topic('topic' => attributes)
|
69
|
+
end
|
43
70
|
|
44
|
-
merge_attributes(data)
|
71
|
+
merge_attributes(data.body['topic'])
|
45
72
|
end
|
46
73
|
|
47
74
|
def comments
|
48
|
-
|
75
|
+
topic_comments(topic_id: topic_id)
|
49
76
|
end
|
50
77
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::TopicComment
|
2
3
|
include Zendesk2::Model
|
3
4
|
|
@@ -29,30 +30,32 @@ class Zendesk2::TopicComment
|
|
29
30
|
def destroy!
|
30
31
|
requires :identity
|
31
32
|
|
32
|
-
cistern.destroy_topic_comment(
|
33
|
+
cistern.destroy_topic_comment('topic_comment' => { 'id' => identity, 'topic_id' => topic_id })
|
33
34
|
end
|
34
35
|
|
35
36
|
def save!
|
36
37
|
response = if new_record?
|
37
38
|
requires :topic_id, :user_id, :body
|
38
39
|
|
39
|
-
cistern.create_topic_comment(
|
40
|
+
cistern.create_topic_comment('topic_comment' => attributes)
|
40
41
|
else
|
41
42
|
requires :identity
|
42
43
|
|
43
|
-
cistern.update_topic_comment(
|
44
|
+
cistern.update_topic_comment('topic_comment' => attributes)
|
44
45
|
end
|
45
46
|
|
46
|
-
merge_attributes(response.body[
|
47
|
+
merge_attributes(response.body['topic_comment'])
|
47
48
|
end
|
48
49
|
|
49
50
|
def reload
|
50
51
|
requires :identity
|
51
52
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
data = cistern.topic_comments('topic_id' => topic_id).get(identity)
|
54
|
+
|
55
|
+
return unless data
|
56
|
+
|
57
|
+
new_attributes = data.attributes
|
58
|
+
merge_attributes(new_attributes)
|
59
|
+
self
|
57
60
|
end
|
58
61
|
end
|