zendesk2 1.9.0 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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,37 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::CreateHelpCenterTranslation
|
2
3
|
include Zendesk2::Request
|
3
4
|
include Zendesk2::HelpCenter::TranslationSource::Request
|
4
5
|
|
5
6
|
request_method :post
|
6
7
|
request_path { |r| "/help_center/#{r.source_type_url}/#{r.source_id}/translations/#{r.locale}.json" }
|
7
|
-
request_body { |r| {
|
8
|
+
request_body { |r| { 'translation' => r.translation_params } }
|
8
9
|
|
9
10
|
def self.accepted_attributes
|
10
|
-
%w
|
11
|
+
%w(locale title body outdated draft)
|
11
12
|
end
|
12
13
|
|
13
14
|
def translation_params
|
14
|
-
Cistern::Hash.slice(params.fetch(
|
15
|
+
Cistern::Hash.slice(params.fetch('translation'), *self.class.accepted_attributes)
|
15
16
|
end
|
16
17
|
|
17
18
|
def mock
|
18
19
|
identity = cistern.serial_id
|
19
20
|
|
20
21
|
record = {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
22
|
+
'id' => identity,
|
23
|
+
'url' => url_for("/help_center/#{source_type_url}/#{source_id}/translation/#{locale}.json"),
|
24
|
+
'html_url' => html_url_for("/hc/#{locale}/#{source_type_url}/#{source_id}"),
|
25
|
+
'created_at' => Time.now.iso8601,
|
26
|
+
'updated_at' => Time.now.iso8601,
|
27
|
+
'title' => params.fetch('translation').fetch('title'),
|
28
|
+
'body' => (params.fetch('translation')['body'] || ''),
|
29
|
+
'outdated' => false,
|
30
|
+
'draft' => false,
|
31
|
+
'locale' => locale,
|
31
32
|
}.merge(translation_params)
|
32
33
|
|
33
34
|
cistern.data[:help_center_translations][mock_translation_key] = record
|
34
35
|
|
35
|
-
mock_response(
|
36
|
+
mock_response('translation' => record)
|
36
37
|
end
|
37
38
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::DestroyHelpCenterArticle
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
@@ -5,10 +6,10 @@ class Zendesk2::DestroyHelpCenterArticle
|
|
5
6
|
request_path { |r| "/help_center/articles/#{r.article_id}.json" }
|
6
7
|
|
7
8
|
def article_id
|
8
|
-
params.fetch(
|
9
|
+
params.fetch('article').fetch('id')
|
9
10
|
end
|
10
11
|
|
11
12
|
def mock
|
12
|
-
mock_response(
|
13
|
+
mock_response('article' => find!(:help_center_articles, article_id))
|
13
14
|
end
|
14
15
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::DestroyHelpCenterCategory
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
@@ -5,10 +6,10 @@ class Zendesk2::DestroyHelpCenterCategory
|
|
5
6
|
request_method :delete
|
6
7
|
|
7
8
|
def category_id
|
8
|
-
params.fetch(
|
9
|
+
params.fetch('category').fetch('id')
|
9
10
|
end
|
10
11
|
|
11
12
|
def mock
|
12
|
-
mock_response(
|
13
|
+
mock_response('category' => delete!(:help_center_categories, category_id))
|
13
14
|
end
|
14
15
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::DestroyHelpCenterPost
|
3
|
+
include Zendesk2::Request
|
4
|
+
|
5
|
+
request_path { |r| "/community/posts/#{r.post_id}.json" }
|
6
|
+
request_method :delete
|
7
|
+
|
8
|
+
def post_id
|
9
|
+
params.fetch('post').fetch('id')
|
10
|
+
end
|
11
|
+
|
12
|
+
def mock
|
13
|
+
mock_response('post' => delete!(:help_center_posts, post_id))
|
14
|
+
end
|
15
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::DestroyHelpCenterSection
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
@@ -5,11 +6,11 @@ class Zendesk2::DestroyHelpCenterSection
|
|
5
6
|
request_path { |r| "/help_center/sections/#{r.section_id}.json" }
|
6
7
|
|
7
8
|
def section_id
|
8
|
-
params.fetch(
|
9
|
+
params.fetch('section').fetch('id')
|
9
10
|
end
|
10
11
|
|
11
12
|
def mock
|
12
|
-
|
13
|
+
delete!(:help_center_sections, section_id)
|
13
14
|
|
14
15
|
mock_response(nil)
|
15
16
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::DestroyHelpCenterTopic
|
3
|
+
include Zendesk2::Request
|
4
|
+
|
5
|
+
request_path { |r| "/community/topics/#{r.topic_id}.json" }
|
6
|
+
request_method :delete
|
7
|
+
|
8
|
+
def topic_id
|
9
|
+
params.fetch('topic').fetch('id')
|
10
|
+
end
|
11
|
+
|
12
|
+
def mock
|
13
|
+
mock_response('topic' => delete!(:help_center_topics, topic_id))
|
14
|
+
end
|
15
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::DestroyHelpCenterTranslation
|
2
3
|
include Zendesk2::Request
|
3
4
|
include Zendesk2::HelpCenter::TranslationSource::Request
|
@@ -6,7 +7,7 @@ class Zendesk2::DestroyHelpCenterTranslation
|
|
6
7
|
request_path { |r| "/help_center/#{r.source_type_url}/#{r.source_id}/translations/#{r.locale}.json" }
|
7
8
|
|
8
9
|
def mock
|
9
|
-
|
10
|
+
delete!(:help_center_translations, mock_translation_key)
|
10
11
|
|
11
12
|
mock_response(nil)
|
12
13
|
end
|
@@ -1,16 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterAccessPolicy
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
5
|
request_method :get
|
5
|
-
request_path
|
6
|
+
request_path do |r|
|
6
7
|
"/help_center/sections/#{r.section_id}/access_policy.json"
|
7
|
-
|
8
|
+
end
|
8
9
|
|
9
10
|
def section_id
|
10
|
-
params.fetch(
|
11
|
+
params.fetch('section_id')
|
11
12
|
end
|
12
13
|
|
13
|
-
def mock(
|
14
|
-
mock_response(
|
14
|
+
def mock(_params = {})
|
15
|
+
mock_response('access_policy' => find!(:help_center_access_policies, section_id))
|
15
16
|
end
|
16
17
|
end
|
@@ -1,19 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterArticle
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
"/help_center/articles/#{r.article_id}.json"
|
9
|
-
end
|
10
|
-
}
|
5
|
+
request_path do |r|
|
6
|
+
locale = r.params.fetch('article')['locale']
|
7
|
+
locale ? "/help_center/#{locale}/articles/#{r.article_id}.json" : "/help_center/articles/#{r.article_id}.json"
|
8
|
+
end
|
11
9
|
|
12
10
|
def article_id
|
13
|
-
params.fetch(
|
11
|
+
params.fetch('article').fetch('id')
|
14
12
|
end
|
15
13
|
|
16
14
|
def mock
|
17
|
-
mock_response(
|
15
|
+
mock_response('article' => find!(:help_center_articles, article_id))
|
18
16
|
end
|
19
17
|
end
|
@@ -1,11 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterArticles
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path { |_|
|
5
|
+
request_path { |_| '/help_center/articles.json' }
|
5
6
|
|
6
7
|
page_params!
|
7
8
|
|
8
9
|
def mock
|
9
|
-
page(:help_center_articles, root:
|
10
|
+
page(:help_center_articles, root: 'articles')
|
10
11
|
end
|
11
12
|
end
|
@@ -1,11 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterCategories
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path
|
5
|
+
request_path do |r|
|
6
|
+
locale = r.params['locale']
|
7
|
+
locale ? "/help_center/#{locale}/categories.json" : '/help_center/categories.json'
|
8
|
+
end
|
5
9
|
|
6
10
|
page_params!
|
7
11
|
|
8
12
|
def mock
|
9
|
-
page(:help_center_categories, root:
|
13
|
+
page(:help_center_categories, root: 'categories')
|
10
14
|
end
|
11
15
|
end
|
@@ -1,23 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterCategoriesArticles
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path
|
5
|
+
request_path do |r|
|
5
6
|
"/help_center/categories/#{r.category_id}/articles.json"
|
6
|
-
|
7
|
+
end
|
7
8
|
|
8
9
|
page_params!
|
9
10
|
|
10
11
|
def category_id
|
11
12
|
Integer(
|
12
|
-
params.fetch(
|
13
|
+
params.fetch('category_id')
|
13
14
|
)
|
14
15
|
end
|
15
16
|
|
16
17
|
def mock
|
17
|
-
|
18
|
+
find!(:help_center_categories, category_id)
|
18
19
|
|
19
|
-
mock_response(
|
20
|
-
|
21
|
-
|
20
|
+
mock_response('articles' => data[:help_center_articles].values.select do |s|
|
21
|
+
data[:help_center_sections].fetch(s['section_id'])['category_id'] == category_id
|
22
|
+
end)
|
22
23
|
end
|
23
24
|
end
|
@@ -1,21 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterCategoriesSections
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path
|
5
|
+
request_path do |r|
|
5
6
|
"/help_center/categories/#{r.category_id}/sections.json"
|
6
|
-
|
7
|
+
end
|
7
8
|
|
8
9
|
page_params!
|
9
10
|
|
10
11
|
def category_id
|
11
12
|
Integer(
|
12
|
-
params.fetch(
|
13
|
+
params.fetch('category_id')
|
13
14
|
)
|
14
15
|
end
|
15
16
|
|
16
17
|
def mock
|
17
|
-
|
18
|
+
find!(:help_center_categories, category_id)
|
18
19
|
|
19
|
-
mock_response(
|
20
|
+
mock_response('sections' => data[:help_center_sections].values.select { |s| s['category_id'] == category_id })
|
20
21
|
end
|
21
22
|
end
|
@@ -1,19 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterCategory
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
"/help_center/categories/#{r.category_id}.json"
|
9
|
-
end
|
10
|
-
}
|
5
|
+
request_path do |r|
|
6
|
+
locale = r.params.fetch('category')['locale']
|
7
|
+
locale ? "/help_center/#{locale}/categories/#{r.category_id}.json" : "/help_center/categories/#{r.category_id}.json"
|
8
|
+
end
|
11
9
|
|
12
10
|
def category_id
|
13
|
-
params.fetch(
|
11
|
+
params.fetch('category').fetch('id')
|
14
12
|
end
|
15
13
|
|
16
14
|
def mock
|
17
|
-
mock_response(
|
15
|
+
mock_response('category' => find!(:help_center_categories, category_id))
|
18
16
|
end
|
19
17
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::GetHelpCenterPost
|
3
|
+
include Zendesk2::Request
|
4
|
+
|
5
|
+
request_method :get
|
6
|
+
request_path { |r| "/community/posts/#{r.post_id}.json" }
|
7
|
+
|
8
|
+
def post_id
|
9
|
+
post.fetch('id')
|
10
|
+
end
|
11
|
+
|
12
|
+
def post
|
13
|
+
Cistern::Hash.stringify_keys(params.fetch('post'))
|
14
|
+
end
|
15
|
+
|
16
|
+
def mock
|
17
|
+
mock_response('post' => find!(:help_center_posts, post_id))
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Zendesk2::GetHelpCenterPosts
|
3
|
+
include Zendesk2::Request
|
4
|
+
|
5
|
+
request_path do |r|
|
6
|
+
if r.topic_id
|
7
|
+
"/community/topics/#{r.topic_id}.json"
|
8
|
+
elsif r.user_id
|
9
|
+
"/community/users/#{r.user_id}.json"
|
10
|
+
else
|
11
|
+
'/community/posts.json'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
page_params!
|
16
|
+
|
17
|
+
def topic_id
|
18
|
+
params['topic_id']
|
19
|
+
end
|
20
|
+
|
21
|
+
def user_id
|
22
|
+
params['user_id']
|
23
|
+
end
|
24
|
+
|
25
|
+
def mock
|
26
|
+
page(:help_center_posts, root: 'posts')
|
27
|
+
end
|
28
|
+
end
|
@@ -1,20 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterSection
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
5
|
request_method :get
|
5
|
-
request_path
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
"/help_center/sections/#{r.section_id}.json"
|
10
|
-
end
|
11
|
-
}
|
6
|
+
request_path do |r|
|
7
|
+
locale = r.params.fetch('section')['locale']
|
8
|
+
locale ? "/help_center/#{locale}/sections/#{r.section_id}.json" : "/help_center/sections/#{r.section_id}.json"
|
9
|
+
end
|
12
10
|
|
13
11
|
def section_id
|
14
|
-
params.fetch(
|
12
|
+
params.fetch('section').fetch('id')
|
15
13
|
end
|
16
14
|
|
17
|
-
def mock(
|
18
|
-
mock_response(
|
15
|
+
def mock(_params = {})
|
16
|
+
mock_response('section' => find!(:help_center_sections, section_id))
|
19
17
|
end
|
20
18
|
end
|
@@ -1,11 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterSections
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path { |_|
|
5
|
+
request_path { |_| '/help_center/sections.json' }
|
5
6
|
|
6
7
|
page_params!
|
7
8
|
|
8
9
|
def mock
|
9
|
-
page(:help_center_sections, root:
|
10
|
+
page(:help_center_sections, root: 'sections')
|
10
11
|
end
|
11
12
|
end
|
@@ -1,25 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
class Zendesk2::GetHelpCenterSectionsArticles
|
2
3
|
include Zendesk2::Request
|
3
4
|
|
4
|
-
request_path
|
5
|
-
|
5
|
+
request_path do |r|
|
6
|
+
locale = r.params['locale']
|
7
|
+
|
8
|
+
if locale
|
6
9
|
"/help_center/#{locale}/sections/#{r.section_id}/articles.json"
|
7
10
|
else
|
8
11
|
"/help_center/sections/#{r.section_id}/articles.json"
|
9
12
|
end
|
10
|
-
|
13
|
+
end
|
11
14
|
|
12
15
|
page_params!
|
13
16
|
|
14
17
|
def section_id
|
15
|
-
Integer(
|
16
|
-
params.fetch("section_id")
|
17
|
-
)
|
18
|
+
Integer(params.fetch('section_id'))
|
18
19
|
end
|
19
20
|
|
20
21
|
def mock
|
21
|
-
|
22
|
+
find!(:help_center_sections, section_id)
|
22
23
|
|
23
|
-
mock_response(
|
24
|
+
mock_response('articles' => data[:help_center_articles].values.select { |s| s['section_id'] == section_id })
|
24
25
|
end
|
25
26
|
end
|