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.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +30 -0
  3. data/.travis.yml +3 -1
  4. data/Gemfile +4 -5
  5. data/Guardfile +4 -3
  6. data/Rakefile +4 -3
  7. data/lib/zendesk2.rb +9 -6
  8. data/lib/zendesk2/attributes.rb +11 -8
  9. data/lib/zendesk2/audit_event.rb +5 -3
  10. data/lib/zendesk2/categories.rb +4 -3
  11. data/lib/zendesk2/category.rb +10 -5
  12. data/lib/zendesk2/client.rb +3 -3
  13. data/lib/zendesk2/collection.rb +35 -21
  14. data/lib/zendesk2/create_category.rb +10 -9
  15. data/lib/zendesk2/create_forum.rb +11 -10
  16. data/lib/zendesk2/create_group.rb +13 -12
  17. data/lib/zendesk2/create_membership.rb +21 -20
  18. data/lib/zendesk2/create_organization.rb +24 -18
  19. data/lib/zendesk2/create_ticket.rb +60 -56
  20. data/lib/zendesk2/create_ticket_field.rb +24 -22
  21. data/lib/zendesk2/create_topic.rb +11 -10
  22. data/lib/zendesk2/create_topic_comment.rb +12 -11
  23. data/lib/zendesk2/create_user.rb +54 -41
  24. data/lib/zendesk2/create_user_field.rb +22 -21
  25. data/lib/zendesk2/create_user_identity.rb +18 -15
  26. data/lib/zendesk2/create_view.rb +62 -62
  27. data/lib/zendesk2/destroy_category.rb +2 -1
  28. data/lib/zendesk2/destroy_forum.rb +2 -1
  29. data/lib/zendesk2/destroy_group.rb +3 -2
  30. data/lib/zendesk2/destroy_membership.rb +7 -5
  31. data/lib/zendesk2/destroy_organization.rb +3 -2
  32. data/lib/zendesk2/destroy_ticket.rb +3 -2
  33. data/lib/zendesk2/destroy_ticket_field.rb +3 -2
  34. data/lib/zendesk2/destroy_topic.rb +3 -2
  35. data/lib/zendesk2/destroy_topic_comment.rb +4 -3
  36. data/lib/zendesk2/destroy_user.rb +11 -10
  37. data/lib/zendesk2/destroy_user_field.rb +3 -2
  38. data/lib/zendesk2/destroy_user_identity.rb +4 -3
  39. data/lib/zendesk2/destroy_view.rb +3 -2
  40. data/lib/zendesk2/error.rb +1 -1
  41. data/lib/zendesk2/forum.rb +36 -18
  42. data/lib/zendesk2/forums.rb +4 -3
  43. data/lib/zendesk2/get_assignable_groups.rb +3 -2
  44. data/lib/zendesk2/get_categories.rb +2 -1
  45. data/lib/zendesk2/get_category.rb +3 -2
  46. data/lib/zendesk2/get_ccd_tickets.rb +4 -3
  47. data/lib/zendesk2/get_current_user.rb +3 -2
  48. data/lib/zendesk2/get_forum.rb +3 -2
  49. data/lib/zendesk2/get_forums.rb +2 -1
  50. data/lib/zendesk2/get_group.rb +3 -2
  51. data/lib/zendesk2/get_groups.rb +2 -1
  52. data/lib/zendesk2/get_membership.rb +3 -2
  53. data/lib/zendesk2/get_memberships.rb +3 -2
  54. data/lib/zendesk2/get_organization.rb +3 -2
  55. data/lib/zendesk2/get_organization_by_external_id.rb +8 -5
  56. data/lib/zendesk2/get_organization_memberships.rb +5 -2
  57. data/lib/zendesk2/get_organization_tickets.rb +7 -5
  58. data/lib/zendesk2/get_organization_users.rb +6 -5
  59. data/lib/zendesk2/get_organizations.rb +2 -1
  60. data/lib/zendesk2/get_requested_tickets.rb +5 -4
  61. data/lib/zendesk2/get_ticket.rb +3 -2
  62. data/lib/zendesk2/get_ticket_audit.rb +5 -4
  63. data/lib/zendesk2/get_ticket_audits.rb +4 -3
  64. data/lib/zendesk2/get_ticket_comments.rb +6 -5
  65. data/lib/zendesk2/get_ticket_field.rb +3 -2
  66. data/lib/zendesk2/get_ticket_fields.rb +2 -1
  67. data/lib/zendesk2/get_ticket_metric.rb +4 -3
  68. data/lib/zendesk2/get_ticket_metrics.rb +3 -2
  69. data/lib/zendesk2/get_tickets.rb +2 -1
  70. data/lib/zendesk2/get_topic.rb +3 -2
  71. data/lib/zendesk2/get_topic_comment.rb +4 -3
  72. data/lib/zendesk2/get_topic_comments.rb +5 -4
  73. data/lib/zendesk2/get_topics.rb +2 -1
  74. data/lib/zendesk2/get_user.rb +7 -7
  75. data/lib/zendesk2/get_user_field.rb +3 -2
  76. data/lib/zendesk2/get_user_fields.rb +3 -2
  77. data/lib/zendesk2/get_user_identities.rb +4 -3
  78. data/lib/zendesk2/get_user_identity.rb +4 -3
  79. data/lib/zendesk2/get_user_memberships.rb +4 -3
  80. data/lib/zendesk2/get_user_organizations.rb +5 -4
  81. data/lib/zendesk2/get_users.rb +3 -2
  82. data/lib/zendesk2/get_view.rb +3 -2
  83. data/lib/zendesk2/get_view_tickets.rb +19 -16
  84. data/lib/zendesk2/get_views.rb +2 -1
  85. data/lib/zendesk2/group.rb +6 -5
  86. data/lib/zendesk2/groups.rb +7 -6
  87. data/lib/zendesk2/help_center.rb +15 -0
  88. data/lib/zendesk2/help_center/access_policy.rb +3 -2
  89. data/lib/zendesk2/help_center/article.rb +10 -7
  90. data/lib/zendesk2/help_center/articles.rb +7 -7
  91. data/lib/zendesk2/help_center/categories.rb +3 -2
  92. data/lib/zendesk2/help_center/category.rb +8 -7
  93. data/lib/zendesk2/help_center/create_help_center_article.rb +31 -29
  94. data/lib/zendesk2/help_center/create_help_center_category.rb +17 -16
  95. data/lib/zendesk2/help_center/create_help_center_post.rb +37 -0
  96. data/lib/zendesk2/help_center/create_help_center_section.rb +32 -31
  97. data/lib/zendesk2/help_center/create_help_center_topic.rb +36 -0
  98. data/lib/zendesk2/help_center/create_help_center_translation.rb +15 -14
  99. data/lib/zendesk2/help_center/destroy_help_center_article.rb +3 -2
  100. data/lib/zendesk2/help_center/destroy_help_center_category.rb +3 -2
  101. data/lib/zendesk2/help_center/destroy_help_center_post.rb +15 -0
  102. data/lib/zendesk2/help_center/destroy_help_center_section.rb +3 -2
  103. data/lib/zendesk2/help_center/destroy_help_center_topic.rb +15 -0
  104. data/lib/zendesk2/help_center/destroy_help_center_translation.rb +2 -1
  105. data/lib/zendesk2/help_center/get_help_center_access_policy.rb +6 -5
  106. data/lib/zendesk2/help_center/get_help_center_article.rb +7 -9
  107. data/lib/zendesk2/help_center/get_help_center_articles.rb +3 -2
  108. data/lib/zendesk2/help_center/get_help_center_categories.rb +6 -2
  109. data/lib/zendesk2/help_center/get_help_center_categories_articles.rb +8 -7
  110. data/lib/zendesk2/help_center/get_help_center_categories_sections.rb +6 -5
  111. data/lib/zendesk2/help_center/get_help_center_category.rb +7 -9
  112. data/lib/zendesk2/help_center/get_help_center_post.rb +19 -0
  113. data/lib/zendesk2/help_center/get_help_center_posts.rb +28 -0
  114. data/lib/zendesk2/help_center/get_help_center_section.rb +8 -10
  115. data/lib/zendesk2/help_center/get_help_center_sections.rb +3 -2
  116. data/lib/zendesk2/help_center/get_help_center_sections_articles.rb +9 -8
  117. data/lib/zendesk2/help_center/get_help_center_topic.rb +14 -0
  118. data/lib/zendesk2/help_center/get_help_center_topics.rb +10 -0
  119. data/lib/zendesk2/help_center/get_help_center_translation.rb +5 -4
  120. data/lib/zendesk2/help_center/get_help_center_translations.rb +7 -6
  121. data/lib/zendesk2/help_center/post.rb +72 -0
  122. data/lib/zendesk2/help_center/posts.rb +18 -0
  123. data/lib/zendesk2/help_center/search_help_center_articles.rb +8 -7
  124. data/lib/zendesk2/help_center/section.rb +11 -11
  125. data/lib/zendesk2/help_center/sections.rb +7 -6
  126. data/lib/zendesk2/help_center/topic.rb +52 -0
  127. data/lib/zendesk2/help_center/topics.rb +13 -0
  128. data/lib/zendesk2/help_center/translation.rb +8 -5
  129. data/lib/zendesk2/help_center/translation_source.rb +16 -13
  130. data/lib/zendesk2/help_center/translations.rb +3 -2
  131. data/lib/zendesk2/help_center/update_help_center_access_policy.rb +8 -7
  132. data/lib/zendesk2/help_center/update_help_center_article.rb +9 -11
  133. data/lib/zendesk2/help_center/update_help_center_category.rb +9 -11
  134. data/lib/zendesk2/help_center/update_help_center_post.rb +20 -0
  135. data/lib/zendesk2/help_center/update_help_center_section.rb +9 -11
  136. data/lib/zendesk2/help_center/update_help_center_topic.rb +20 -0
  137. data/lib/zendesk2/help_center/update_help_center_translation.rb +4 -3
  138. data/lib/zendesk2/logger.rb +3 -2
  139. data/lib/zendesk2/mark_membership_default.rb +7 -6
  140. data/lib/zendesk2/mark_user_identity_primary.rb +7 -6
  141. data/lib/zendesk2/membership.rb +10 -8
  142. data/lib/zendesk2/memberships.rb +18 -12
  143. data/lib/zendesk2/mock.rb +39 -34
  144. data/lib/zendesk2/model.rb +14 -3
  145. data/lib/zendesk2/organization.rb +7 -7
  146. data/lib/zendesk2/organizations.rb +14 -12
  147. data/lib/zendesk2/paged_collection.rb +40 -36
  148. data/lib/zendesk2/rate_limit.rb +4 -3
  149. data/lib/zendesk2/real.rb +25 -22
  150. data/lib/zendesk2/request.rb +78 -82
  151. data/lib/zendesk2/search.rb +8 -7
  152. data/lib/zendesk2/search_organization.rb +14 -14
  153. data/lib/zendesk2/search_user.rb +41 -37
  154. data/lib/zendesk2/searchable.rb +36 -26
  155. data/lib/zendesk2/ticket.rb +20 -18
  156. data/lib/zendesk2/ticket_audit.rb +5 -4
  157. data/lib/zendesk2/ticket_audits.rb +10 -11
  158. data/lib/zendesk2/ticket_change.rb +10 -11
  159. data/lib/zendesk2/ticket_comment.rb +2 -1
  160. data/lib/zendesk2/ticket_comment_privacy_change.rb +12 -14
  161. data/lib/zendesk2/ticket_comments.rb +7 -6
  162. data/lib/zendesk2/ticket_create.rb +8 -9
  163. data/lib/zendesk2/ticket_field.rb +5 -4
  164. data/lib/zendesk2/ticket_fields.rb +4 -3
  165. data/lib/zendesk2/ticket_metric.rb +2 -2
  166. data/lib/zendesk2/ticket_metrics.rb +3 -2
  167. data/lib/zendesk2/ticket_notification.rb +12 -13
  168. data/lib/zendesk2/ticket_voice_comment.rb +28 -29
  169. data/lib/zendesk2/tickets.rb +8 -7
  170. data/lib/zendesk2/topic.rb +49 -22
  171. data/lib/zendesk2/topic_comment.rb +12 -9
  172. data/lib/zendesk2/topic_comments.rb +4 -3
  173. data/lib/zendesk2/topics.rb +4 -3
  174. data/lib/zendesk2/update_category.rb +8 -6
  175. data/lib/zendesk2/update_forum.rb +5 -4
  176. data/lib/zendesk2/update_group.rb +5 -4
  177. data/lib/zendesk2/update_organization.rb +18 -9
  178. data/lib/zendesk2/update_request.rb +6 -5
  179. data/lib/zendesk2/update_ticket.rb +39 -38
  180. data/lib/zendesk2/update_ticket_field.rb +5 -4
  181. data/lib/zendesk2/update_topic.rb +5 -4
  182. data/lib/zendesk2/update_user.rb +39 -31
  183. data/lib/zendesk2/update_user_field.rb +4 -3
  184. data/lib/zendesk2/update_user_identity.rb +7 -6
  185. data/lib/zendesk2/update_view.rb +38 -34
  186. data/lib/zendesk2/user.rb +41 -37
  187. data/lib/zendesk2/user_field.rb +9 -6
  188. data/lib/zendesk2/user_fields.rb +4 -3
  189. data/lib/zendesk2/user_identities.rb +4 -3
  190. data/lib/zendesk2/user_identity.rb +12 -9
  191. data/lib/zendesk2/users.rb +5 -4
  192. data/lib/zendesk2/version.rb +2 -1
  193. data/lib/zendesk2/view.rb +24 -13
  194. data/lib/zendesk2/views.rb +3 -2
  195. data/spec/categories_spec.rb +63 -60
  196. data/spec/client_spec.rb +6 -5
  197. data/spec/forums_spec.rb +64 -61
  198. data/spec/groups_spec.rb +7 -8
  199. data/spec/help_center/articles_spec.rb +22 -26
  200. data/spec/help_center/categories_spec.rb +26 -27
  201. data/spec/help_center/posts_spec.rb +39 -0
  202. data/spec/help_center/sections_spec.rb +32 -33
  203. data/spec/help_center/topics_spec.rb +13 -0
  204. data/spec/lib/paged_collection_spec.rb +11 -11
  205. data/spec/lib/rate_limit_spec.rb +9 -8
  206. data/spec/memberships_spec.rb +38 -27
  207. data/spec/organizations_spec.rb +92 -87
  208. data/spec/shared/zendesk_resource.rb +40 -25
  209. data/spec/spec_helper.rb +8 -13
  210. data/spec/support/client_helper.rb +5 -4
  211. data/spec/support/data_helper.rb +1 -0
  212. data/spec/ticket_fields_spec.rb +6 -7
  213. data/spec/tickets_spec.rb +69 -58
  214. data/spec/topic_comments_spec.rb +7 -8
  215. data/spec/topics_spec.rb +5 -6
  216. data/spec/user_fields_spec.rb +7 -7
  217. data/spec/user_identities_spec.rb +29 -25
  218. data/spec/users_spec.rb +88 -78
  219. data/spec/views_spec.rb +45 -34
  220. data/spec/zendesk2_spec.rb +3 -2
  221. data/zendesk2.gemspec +15 -14
  222. metadata +21 -2
@@ -1,13 +1,12 @@
1
- class Zendesk2
2
- class TicketChange < AuditEvent
3
- # @return [Integer] Automatically assigned when creating events
4
- identity :id, type: :integer
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
- # @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: lambda{|v, _| [*v]}
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
- self.cistern.users.get(self.author_id)
23
+ cistern.users.get(author_id)
23
24
  end
24
25
  end
@@ -1,19 +1,17 @@
1
- class Zendesk2
2
- class TicketCommentPrivacyChange < AuditEvent
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
- # @return [integer] Automatically assigned when creating events
5
- identity :id, type: :integer
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
- # @return [Integer] The id if the comment that changed privacy
8
- attribute :comment_id, type: :integer
9
- # @return [Boolean] Tells if the comment was made public or private
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
- # @return [Zendesk2::TicketComment] ticket comment pertaining to this privacy change
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 = "comments"
12
+ self.collection_root = 'comments'
12
13
 
13
14
  def ticket
14
- self.cistern.tickets.get(self.ticket_id)
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, {"ticket_id" => self.ticket_id}.merge(params)).body
21
+ body = cistern.send(collection_method, { 'ticket_id' => ticket_id }.merge(params)).body
21
22
 
22
- collection = self.clone.load(body[collection_root])
23
- collection.merge_attributes(Cistern::Hash.slice(body, "count", "next_page", "previous_page"))
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
- class Zendesk2
2
- class TicketCreate < AuditEvent
3
- # @return [integer] Automatically assigned when creating events
4
- identity :id, type: :integer
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
- # @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: lambda{|v, _| [*v]}
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("ticket_field" => self.attributes)
53
+ cistern.create_ticket_field('ticket_field' => attributes)
53
54
  else
54
55
  requires :identity
55
56
 
56
- cistern.update_ticket_field("ticket_field" => self.attributes)
57
- end.body["ticket_field"]
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("ticket_field" => { "id" => self.identity })
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 = "ticket_fields"
12
+ self.collection_root = 'ticket_fields'
12
13
  self.model_method = :get_ticket_field
13
- self.model_root = "ticket_field"
14
- self.search_type = "ticket_field"
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
- self.cistern.tickets.get(self.ticket_id)
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 = "ticket_metrics"
8
+ self.collection_root = 'ticket_metrics'
8
9
  self.model_method = :get_ticket_metric
9
- self.model_root = "ticket_metric"
10
+ self.model_root = 'ticket_metric'
10
11
  end
@@ -1,15 +1,14 @@
1
- class Zendesk2
2
- class TicketNotification < AuditEvent
3
- # @return [Integer] Automatically assigned when creating events
4
- identity :id, type: :integer
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
- # @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
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
- class Zendesk2
2
- class TicketVoiceComment < AuditEvent
3
- # @return [Integer] Automatically assigned when creating events
4
- identity :id, type: :integer
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
- # @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
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
- # @return [Zendesk2::User] event author
28
- def author
29
- requires :author_id
27
+ # @return [Zendesk2::User] event author
28
+ def author
29
+ requires :author_id
30
30
 
31
- self.cistern.users.get(self.author_id)
32
- end
31
+ cistern.users.get(author_id)
33
32
  end
34
33
  end
@@ -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 = "tickets"
18
+ self.collection_root = 'tickets'
18
19
  self.model_method = :get_ticket
19
- self.model_root = "ticket"
20
- self.search_type = "ticket"
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(self.attributes.merge(params))).body
34
+ body = cistern.send(collection_method, Cistern::Hash.stringify_keys(attributes.merge(params))).body
34
35
 
35
- self.load(body[collection_root]) # 'results' is the key for paged searches
36
- self.merge_attributes(Cistern::Hash.slice(body, "count", "next_page", "previous_page"))
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
 
@@ -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
- identity :id, type: :integer # ro[yes] mandatory[no] Automatically assigned upon creation
7
-
8
- attribute :url, type: :string # ro[yes] mandatory[no] The API url of this topic
9
- attribute :title, type: :string # ro[no] mandatory[yes] The title of the topic
10
- attribute :body, type: :string # ro[no] mandatory[yes] The unescaped body of the topic
11
- attribute :topic_type, type: :string # ro[yes] mandatory[no] The type of topic. Either "articles", "ideas" or "questions"
12
- attribute :submitter_id, type: :integer # ro[no] mandatory[no] The id of the user who submitted the topic
13
- attribute :updater_id, type: :integer # ro[no] mandatory[no] The id of the person to last update the topic
14
- attribute :forum_id, type: :integer # ro[no] mandatory[no] Forum that the topic is associated to
15
- attribute :locked, type: :boolean # ro[no] mandatory[no] Whether comments are allowed
16
- attribute :pinned, type: :boolean # ro[no] mandatory[no] If the topic is marked as pinned and hence eligible to show up on the front page
17
- attribute :highlighted, type: :boolean # ro[no] mandatory[no] Set to true to highlight a topic within its forum
18
- attribute :answered, type: :boolean # ro[yes] mandatory[no] Set to true if the topic is a question and it has been marked as answered.
19
- attribute :position, type: :integer # ro[no] mandatory[no] The position of this topic relative to other topics in the same forum
20
- attribute :tags, type: :array # ro[no] mandatory[no] The tags set on the topic
21
- attribute :created_at, type: :time # ro[yes] mandatory[no] The time the topic was created
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("topic" => {"id" => self.identity})
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("topic" => self.attributes)
64
+ cistern.create_topic('topic' => attributes)
38
65
  else
39
66
  requires :identity
40
67
 
41
- cistern.update_topic("topic" => self.attributes)
42
- end.body["topic"]
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
- self.topic_comments(topic_id: topic_id)
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("topic_comment" => { "id" => self.identity, "topic_id" => self.topic_id })
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("topic_comment" => self.attributes)
40
+ cistern.create_topic_comment('topic_comment' => attributes)
40
41
  else
41
42
  requires :identity
42
43
 
43
- cistern.update_topic_comment("topic_comment" => self.attributes)
44
+ cistern.update_topic_comment('topic_comment' => attributes)
44
45
  end
45
46
 
46
- merge_attributes(response.body["topic_comment"])
47
+ merge_attributes(response.body['topic_comment'])
47
48
  end
48
49
 
49
50
  def reload
50
51
  requires :identity
51
52
 
52
- if data = self.cistern.topic_comments("topic_id" => topic_id).get(identity)
53
- new_attributes = data.attributes
54
- merge_attributes(new_attributes)
55
- self
56
- end
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