zendesk2 1.4.2 → 1.5.3

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -1
  3. data/lib/zendesk2/attributes.rb +1 -1
  4. data/lib/zendesk2/{collection.rb → client/collection.rb} +22 -17
  5. data/lib/zendesk2/client/collections/categories.rb +2 -1
  6. data/lib/zendesk2/client/collections/forums.rb +2 -1
  7. data/lib/zendesk2/client/collections/groups.rb +4 -3
  8. data/lib/zendesk2/client/collections/help_center/articles.rb +2 -1
  9. data/lib/zendesk2/client/collections/help_center/categories.rb +2 -1
  10. data/lib/zendesk2/client/collections/help_center/sections.rb +2 -1
  11. data/lib/zendesk2/client/collections/memberships.rb +9 -7
  12. data/lib/zendesk2/client/collections/organizations.rb +3 -2
  13. data/lib/zendesk2/client/collections/ticket_audits.rb +5 -4
  14. data/lib/zendesk2/client/collections/ticket_comments.rb +4 -3
  15. data/lib/zendesk2/client/collections/ticket_fields.rb +3 -1
  16. data/lib/zendesk2/client/collections/tickets.rb +2 -1
  17. data/lib/zendesk2/client/collections/topic_comments.rb +2 -1
  18. data/lib/zendesk2/client/collections/topics.rb +2 -1
  19. data/lib/zendesk2/client/collections/user_fields.rb +3 -1
  20. data/lib/zendesk2/client/collections/user_identities.rb +3 -1
  21. data/lib/zendesk2/client/collections/users.rb +3 -2
  22. data/lib/zendesk2/client/help_center.rb +3 -0
  23. data/lib/zendesk2/client/mock.rb +7 -130
  24. data/lib/zendesk2/{model.rb → client/model.rb} +7 -3
  25. data/lib/zendesk2/client/models/audit_event.rb +2 -2
  26. data/lib/zendesk2/client/models/category.rb +8 -8
  27. data/lib/zendesk2/client/models/forum.rb +11 -16
  28. data/lib/zendesk2/client/models/group.rb +8 -13
  29. data/lib/zendesk2/client/models/help_center/article.rb +12 -16
  30. data/lib/zendesk2/client/models/help_center/category.rb +12 -16
  31. data/lib/zendesk2/client/models/help_center/section.rb +12 -16
  32. data/lib/zendesk2/client/models/membership.rb +10 -12
  33. data/lib/zendesk2/client/models/organization.rb +13 -20
  34. data/lib/zendesk2/client/models/ticket.rb +21 -19
  35. data/lib/zendesk2/client/models/ticket_audit.rb +3 -3
  36. data/lib/zendesk2/client/models/ticket_comment.rb +1 -1
  37. data/lib/zendesk2/client/models/ticket_comment_privacy_change.rb +1 -1
  38. data/lib/zendesk2/client/models/ticket_field.rb +5 -13
  39. data/lib/zendesk2/client/models/ticket_metric.rb +1 -1
  40. data/lib/zendesk2/client/models/ticket_voice_comment.rb +1 -1
  41. data/lib/zendesk2/client/models/topic.rb +9 -14
  42. data/lib/zendesk2/client/models/topic_comment.rb +14 -19
  43. data/lib/zendesk2/client/models/user.rb +25 -32
  44. data/lib/zendesk2/client/models/user_field.rb +10 -18
  45. data/lib/zendesk2/client/models/user_identity.rb +9 -18
  46. data/lib/zendesk2/client/real.rb +7 -8
  47. data/lib/zendesk2/client/request.rb +271 -0
  48. data/lib/zendesk2/client/requests/create_category.rb +19 -27
  49. data/lib/zendesk2/client/requests/create_forum.rb +23 -28
  50. data/lib/zendesk2/client/requests/create_group.rb +25 -29
  51. data/lib/zendesk2/client/requests/create_help_center_article.rb +54 -60
  52. data/lib/zendesk2/client/requests/create_help_center_category.rb +35 -47
  53. data/lib/zendesk2/client/requests/create_help_center_section.rb +49 -55
  54. data/lib/zendesk2/client/requests/create_membership.rb +42 -42
  55. data/lib/zendesk2/client/requests/create_organization.rb +30 -40
  56. data/lib/zendesk2/client/requests/create_ticket.rb +76 -85
  57. data/lib/zendesk2/client/requests/create_ticket_field.rb +36 -40
  58. data/lib/zendesk2/client/requests/create_topic.rb +23 -28
  59. data/lib/zendesk2/client/requests/create_topic_comment.rb +27 -31
  60. data/lib/zendesk2/client/requests/create_user.rb +51 -56
  61. data/lib/zendesk2/client/requests/create_user_field.rb +36 -40
  62. data/lib/zendesk2/client/requests/create_user_identity.rb +39 -44
  63. data/lib/zendesk2/client/requests/destroy_category.rb +8 -21
  64. data/lib/zendesk2/client/requests/destroy_forum.rb +8 -23
  65. data/lib/zendesk2/client/requests/destroy_group.rb +8 -21
  66. data/lib/zendesk2/client/requests/destroy_help_center_article.rb +8 -18
  67. data/lib/zendesk2/client/requests/destroy_help_center_category.rb +8 -18
  68. data/lib/zendesk2/client/requests/destroy_help_center_section.rb +10 -18
  69. data/lib/zendesk2/client/requests/destroy_membership.rb +8 -22
  70. data/lib/zendesk2/client/requests/destroy_organization.rb +8 -21
  71. data/lib/zendesk2/client/requests/destroy_ticket.rb +8 -21
  72. data/lib/zendesk2/client/requests/destroy_ticket_field.rb +8 -21
  73. data/lib/zendesk2/client/requests/destroy_topic.rb +8 -23
  74. data/lib/zendesk2/client/requests/destroy_topic_comment.rb +11 -24
  75. data/lib/zendesk2/client/requests/destroy_user.rb +17 -43
  76. data/lib/zendesk2/client/requests/destroy_user_field.rb +7 -22
  77. data/lib/zendesk2/client/requests/destroy_user_identity.rb +10 -25
  78. data/lib/zendesk2/client/requests/get_assignable_groups.rb +8 -16
  79. data/lib/zendesk2/client/requests/get_categories.rb +7 -15
  80. data/lib/zendesk2/client/requests/get_category.rb +11 -22
  81. data/lib/zendesk2/client/requests/get_ccd_tickets.rb +11 -18
  82. data/lib/zendesk2/client/requests/get_current_user.rb +6 -16
  83. data/lib/zendesk2/client/requests/get_forum.rb +11 -23
  84. data/lib/zendesk2/client/requests/get_forums.rb +7 -15
  85. data/lib/zendesk2/client/requests/get_group.rb +9 -23
  86. data/lib/zendesk2/client/requests/get_groups.rb +7 -15
  87. data/lib/zendesk2/client/requests/get_help_center_article.rb +13 -37
  88. data/lib/zendesk2/client/requests/get_help_center_articles.rb +6 -15
  89. data/lib/zendesk2/client/requests/get_help_center_categories.rb +6 -15
  90. data/lib/zendesk2/client/requests/get_help_center_category.rb +13 -37
  91. data/lib/zendesk2/client/requests/get_help_center_section.rb +14 -37
  92. data/lib/zendesk2/client/requests/get_help_center_sections.rb +6 -15
  93. data/lib/zendesk2/client/requests/get_membership.rb +9 -24
  94. data/lib/zendesk2/client/requests/get_organization.rb +9 -22
  95. data/lib/zendesk2/client/requests/get_organization_by_external_id.rb +11 -20
  96. data/lib/zendesk2/client/requests/get_organization_memberships.rb +10 -16
  97. data/lib/zendesk2/client/requests/get_organization_tickets.rb +14 -21
  98. data/lib/zendesk2/client/requests/get_organization_users.rb +12 -20
  99. data/lib/zendesk2/client/requests/get_organizations.rb +7 -16
  100. data/lib/zendesk2/client/requests/get_requested_tickets.rb +12 -18
  101. data/lib/zendesk2/client/requests/get_ticket.rb +9 -23
  102. data/lib/zendesk2/client/requests/get_ticket_audits.rb +12 -18
  103. data/lib/zendesk2/client/requests/get_ticket_comments.rb +10 -19
  104. data/lib/zendesk2/client/requests/get_ticket_field.rb +9 -22
  105. data/lib/zendesk2/client/requests/get_ticket_fields.rb +7 -15
  106. data/lib/zendesk2/client/requests/get_tickets.rb +7 -15
  107. data/lib/zendesk2/client/requests/get_topic.rb +8 -23
  108. data/lib/zendesk2/client/requests/get_topic_comment.rb +12 -28
  109. data/lib/zendesk2/client/requests/get_topic_comments.rb +13 -18
  110. data/lib/zendesk2/client/requests/get_topics.rb +6 -15
  111. data/lib/zendesk2/client/requests/get_user.rb +15 -28
  112. data/lib/zendesk2/client/requests/get_user_field.rb +9 -22
  113. data/lib/zendesk2/client/requests/get_user_identities.rb +11 -18
  114. data/lib/zendesk2/client/requests/get_user_identity.rb +11 -21
  115. data/lib/zendesk2/client/requests/get_user_memberships.rb +12 -18
  116. data/lib/zendesk2/client/requests/get_users.rb +7 -15
  117. data/lib/zendesk2/client/requests/mark_membership_default.rb +17 -28
  118. data/lib/zendesk2/client/requests/mark_user_identity_primary.rb +17 -30
  119. data/lib/zendesk2/client/requests/search.rb +30 -19
  120. data/lib/zendesk2/client/requests/search_help_center_articles.rb +22 -18
  121. data/lib/zendesk2/client/requests/search_organization.rb +40 -28
  122. data/lib/zendesk2/client/requests/search_user.rb +56 -44
  123. data/lib/zendesk2/client/requests/update_category.rb +14 -24
  124. data/lib/zendesk2/client/requests/update_forum.rb +13 -25
  125. data/lib/zendesk2/client/requests/update_group.rb +12 -24
  126. data/lib/zendesk2/client/requests/update_help_center_article.rb +17 -42
  127. data/lib/zendesk2/client/requests/update_help_center_category.rb +17 -42
  128. data/lib/zendesk2/client/requests/update_help_center_section.rb +17 -42
  129. data/lib/zendesk2/client/requests/update_organization.rb +23 -35
  130. data/lib/zendesk2/client/requests/update_ticket.rb +63 -63
  131. data/lib/zendesk2/client/requests/update_ticket_field.rb +12 -24
  132. data/lib/zendesk2/client/requests/update_topic.rb +11 -25
  133. data/lib/zendesk2/client/requests/update_user.rb +47 -62
  134. data/lib/zendesk2/client/requests/update_user_field.rb +11 -23
  135. data/lib/zendesk2/client/requests/update_user_identity.rb +20 -28
  136. data/lib/zendesk2/client.rb +52 -28
  137. data/lib/zendesk2/paged_collection.rb +9 -9
  138. data/lib/zendesk2/searchable.rb +1 -1
  139. data/lib/zendesk2/version.rb +1 -1
  140. data/lib/zendesk2.rb +1 -13
  141. data/spec/categories_spec.rb +132 -0
  142. data/spec/forums_spec.rb +132 -0
  143. data/spec/lib/paged_collection_spec.rb +2 -2
  144. data/spec/memberships_spec.rb +5 -9
  145. data/spec/organizations_spec.rb +176 -25
  146. data/spec/spec_helper.rb +2 -0
  147. data/spec/tickets_spec.rb +2 -2
  148. data/spec/topic_comments_spec.rb +2 -2
  149. data/spec/user_identities_spec.rb +9 -6
  150. data/spec/users_spec.rb +22 -21
  151. data/zendesk2.gemspec +1 -2
  152. metadata +7 -21
  153. data/lib/zendesk2/client/requests/update_topic_comment.rb +0 -37
@@ -1,22 +1,16 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_ticket_audits(params={})
4
- ticket_id = params["ticket_id"]
5
- page_params = Zendesk2.paging_parameters(params)
1
+ class Zendesk2::Client::GetTicketAudits < Zendesk2::Client::Request
2
+ request_method :get
3
+ request_path { |r| "/tickets/#{r.ticket_id}/audits.json" }
6
4
 
7
- request(
8
- :params => page_params,
9
- :method => :get,
10
- :path => "/tickets/#{ticket_id}/audits.json",
11
- )
12
- end
13
- end # Real
5
+ page_params!
14
6
 
15
- class Mock
16
- def get_ticket_audits(params={})
17
- ticket_id = params["ticket_id"]
7
+ def ticket_id
8
+ params.fetch("ticket_id").to_i
9
+ end
18
10
 
19
- page(params, :ticket_audits, "/tickets/#{ticket_id}/audits.json", "audits", filter: lambda{|c| c.select{|a| a["ticket_id"] == ticket_id}})
20
- end
21
- end # Mock
11
+ def mock
12
+ audits = self.data[:ticket_audits].values.select { |a| a["ticket_id"] == ticket_id }
13
+
14
+ page(audits, root: "audits")
15
+ end
22
16
  end
@@ -1,23 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_ticket_comments(params={})
4
- ticket_id = require_parameters(params, "ticket_id")
1
+ class Zendesk2::Client::GetTicketComments < Zendesk2::Client::Request
2
+ request_method :get
3
+ request_path { |r| "/tickets/#{r.ticket_id}/comments.json" }
5
4
 
6
- request(
7
- :method => :get,
8
- :path => "/tickets/#{ticket_id}/comments.json"
9
- )
10
- end
11
- end # Real
5
+ def ticket_id
6
+ params.fetch("ticket_id").to_i
7
+ end
12
8
 
13
- class Mock
14
- def get_ticket_comments(params={})
15
- ticket_id = require_parameters(params, "ticket_id")
9
+ def mock(params={})
10
+ comments = self.data[:ticket_comments].values.select { |comment| comment["ticket_id"] == ticket_id }
16
11
 
17
- page(params,
18
- :ticket_comments,
19
- "/tickets/#{ticket_id}/comments.json",
20
- "comments", filter: lambda { |comments| comments.select { |comment| comment["ticket_id"].to_s == ticket_id.to_s } })
21
- end
22
- end # Mock
12
+ page(comments, root: "comments")
13
+ end
23
14
  end
@@ -1,25 +1,12 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_ticket_field(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::GetTicketField < Zendesk2::Client::Request
2
+ request_method :get
3
+ request_path { |r| "/ticket_fields/#{r.ticket_field_id}.json" }
5
4
 
6
- request(
7
- :method => :get,
8
- :path => "/ticket_fields/#{id}.json"
9
- )
10
- end
11
- end # Real
5
+ def ticket_field_id
6
+ params.fetch("ticket_field").fetch("id").to_i
7
+ end
12
8
 
13
- class Mock
14
- def get_ticket_field(params={})
15
- id = params["id"]
16
-
17
- response(
18
- :path => "/ticket_fields/#{id}.json",
19
- :body => {
20
- "ticket_field" => find!(:ticket_fields, id)
21
- },
22
- )
23
- end
24
- end # Mock
9
+ def mock
10
+ mock_response("ticket_field" => find!(:ticket_fields, ticket_field_id))
11
+ end
25
12
  end
@@ -1,18 +1,10 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_ticket_fields(params={})
4
- page_params = Zendesk2.paging_parameters(params)
1
+ class Zendesk2::Client::GetTicketFields < Zendesk2::Client::Request
2
+ request_method :get
3
+ request_path { |_| "/ticket_fields.json" }
5
4
 
6
- request(
7
- :params => page_params,
8
- :method => :get,
9
- :path => "/ticket_fields.json",
10
- )
11
- end
12
- end
13
- class Mock
14
- def get_ticket_fields(params={})
15
- collection(:ticket_fields, "/ticket_fields.json", "ticket_fields")
16
- end
5
+ page_params!
6
+
7
+ def mock
8
+ resources(:ticket_fields)
17
9
  end
18
10
  end
@@ -1,18 +1,10 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_tickets(params={})
4
- page_params = Zendesk2.paging_parameters(params)
1
+ class Zendesk2::Client::GetTickets < Zendesk2::Client::Request
2
+ request_method :get
3
+ request_path { |r| "/tickets.json" }
5
4
 
6
- request(
7
- :params => page_params,
8
- :method => :get,
9
- :path => "/tickets.json",
10
- )
11
- end
12
- end
13
- class Mock
14
- def get_tickets(params={})
15
- page(params, :tickets, "/tickets.json", "tickets")
16
- end
5
+ page_params!
6
+
7
+ def mock
8
+ page(:tickets)
17
9
  end
18
10
  end
@@ -1,26 +1,11 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_topic(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::GetTopic < Zendesk2::Client::Request
2
+ request_path { |r| "/topics/#{r.topic_id}.json" }
5
3
 
6
- request(
7
- :method => :get,
8
- :path => "/topics/#{id}.json"
9
- )
10
- end
11
- end # Real
4
+ def topic_id
5
+ params.fetch("topic").fetch("id")
6
+ end
12
7
 
13
- class Mock
14
- def get_topic(params={})
15
- id = params["id"]
16
- body = self.find!(:topics, id)
17
-
18
- response(
19
- :path => "/topics/#{id}.json",
20
- :body => {
21
- "topic" => body
22
- },
23
- )
24
- end
25
- end # Mock
8
+ def mock
9
+ mock_response("topic" => self.find!(:topics, topic_id))
10
+ end
26
11
  end
@@ -1,32 +1,16 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_topic_comment(params={})
4
- id = params["id"]
5
- topic_id = params["topic_id"]
6
- path = "/topics/#{topic_id}/comments/#{id}.json"
1
+ class Zendesk2::Client::GetTopicComment < Zendesk2::Client::Request
2
+ request_method :get
3
+ request_path { |r| "/topics/#{r.topic_id}/comments/#{r.topic_comment_id}.json" }
7
4
 
8
- request(
9
- :method => :get,
10
- :path => path,
11
- )
12
- end
13
- end # Real
5
+ def topic_id
6
+ params.fetch("topic_comment").fetch("topic_id")
7
+ end
14
8
 
15
- class Mock
16
- def get_topic_comment(params={})
17
- id = params["id"]
18
- topic_id = params["topic_id"]
9
+ def topic_comment_id
10
+ params.fetch("topic_comment").fetch("id")
11
+ end
19
12
 
20
- unless (topic_comment = self.find!(:topic_comments, id)) && topic_comment["topic_id"] == topic_id
21
- error!(:not_found)
22
- else
23
- response(
24
- :path => "/topics/#{topic_id}/comments/#{id}.json",
25
- :body => {
26
- "topic_comment" => topic_comment,
27
- },
28
- )
29
- end
30
- end
31
- end # Mock
13
+ def mock
14
+ mock_response("topic_comment" => self.find!(:topic_comments, topic_comment_id))
15
+ end
32
16
  end
@@ -1,23 +1,18 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_topic_comments(params={})
4
- topic_id = params.delete("topic_id")
5
- page_params = Zendesk2.paging_parameters(params)
1
+ class Zendesk2::Client::GetTopicComments < Zendesk2::Client::Request
2
+ request_path { |r| "/topics/#{r.topic_id}/comments.json" }
3
+ request_method :get
6
4
 
7
- request(
8
- :params => page_params,
9
- :path => "/topics/#{topic_id}/comments.json",
10
- )
11
- end
5
+ page_params!
6
+
7
+ def topic_id
8
+ params.fetch("topic_id")
12
9
  end
13
- class Mock
14
- def get_topic_comments(params={})
15
- topic_id = params["topic_id"]
16
- self.find!(:topics, topic_id)
17
- filter = lambda { |comments| comments.select { |c| c["topic_id"] == topic_id } }
18
10
 
19
- page(params, :topic_comments, "/topics/#{topic_id}/comments.json", "topic_comments", filter: filter).tap do
20
- end
21
- end
11
+ def mock
12
+ self.find!(:topics, topic_id)
13
+
14
+ topic_comments = self.data[:topic_comments].values.select { |c| c["topic_id"] == topic_id }
15
+
16
+ page(topic_comments, root: "topic_comments")
22
17
  end
23
18
  end
@@ -1,18 +1,9 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_topics(params={})
4
- page_params = Zendesk2.paging_parameters(params)
1
+ class Zendesk2::Client::GetTopics < Zendesk2::Client::Request
2
+ request_path { |r| "/topics.json" }
5
3
 
6
- request(
7
- :params => page_params,
8
- :method => :get,
9
- :path => "/topics.json",
10
- )
11
- end
12
- end
13
- class Mock
14
- def get_topics(params={})
15
- page(params, :topics, "/topics.json", "topics")
16
- end
4
+ page_params!
5
+
6
+ def mock
7
+ page(:topics)
17
8
  end
18
9
  end
@@ -1,34 +1,21 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_user(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::GetUser < Zendesk2::Client::Request
2
+ request_method :get
3
+ request_path { |r| "/users/#{r.user_id}.json" }
5
4
 
6
- request(
7
- :method => :get,
8
- :path => "/users/#{id}.json"
9
- )
10
- end
11
- end # Real
12
-
13
- class Mock
14
- def get_user(params={})
15
- id = require_parameters(params, "id")
5
+ def user_id
6
+ params.fetch("user").fetch("id").to_i
7
+ end
16
8
 
17
- identities = self.data[:identities].values.select { |i| i["user_id"] == id.to_s }
18
- body = find!(:users, id).dup
9
+ def mock
10
+ identities = self.data[:identities].values.select { |i| i["user_id"] == user_id }
11
+ body = find!(:users, user_id).dup
19
12
 
20
- if identity = identities.find { |i| i["type"] == "email" && i["primary"] } || identities.find { |i| i["type"] == "email" }
21
- body.merge!("email" => identity["value"])
22
- end
13
+ if identity = identities.find { |i| i["type"] == "email" && i["primary"] } || identities.find { |i| i["type"] == "email" }
14
+ body.merge!("email" => identity["value"])
15
+ end
23
16
 
24
- # @todo what happens if no identity?
17
+ # @todo what happens if no identity?
25
18
 
26
- response(
27
- :path => "/users/#{id}.json",
28
- :body => {
29
- "user" => body,
30
- },
31
- )
32
- end
33
- end # Mock
19
+ mock_response("user" => body)
20
+ end
34
21
  end
@@ -1,25 +1,12 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_user_field(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::GetUserField < Zendesk2::Client::Request
2
+ request_path { |r| "/user_fields/#{r.user_field_id}.json" }
3
+ request_method :get
5
4
 
6
- request(
7
- :method => :get,
8
- :path => "/user_fields/#{id}.json"
9
- )
10
- end
11
- end # Real
5
+ def user_field_id
6
+ params.fetch("user_field").fetch("id")
7
+ end
12
8
 
13
- class Mock
14
- def get_user_field(params={})
15
- id = params["id"]
16
-
17
- response(
18
- :path => "/user_fields/#{id}.json",
19
- :body => {
20
- "user_field" => find!(:user_fields, id)
21
- },
22
- )
23
- end
24
- end # Mock
9
+ def mock
10
+ mock_response("user_field" => find!(:user_fields, user_field_id))
11
+ end
25
12
  end
@@ -1,22 +1,15 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_user_identities(params={})
4
- user_id = require_parameters(params, "user_id")
5
- page_params = Zendesk2.paging_parameters(params)
1
+ class Zendesk2::Client::GetUserIdentities < Zendesk2::Client::Request
2
+ request_path { |r| "/users/#{r.user_id}/identities.json" }
6
3
 
7
- request(
8
- :params => page_params,
9
- :method => :get,
10
- :path => "/users/#{user_id}/identities.json",
11
- )
12
- end
13
- end # Real
4
+ page_params!
14
5
 
15
- class Mock
16
- def get_user_identities(params={})
17
- user_id = require_parameters(params, "user_id")
6
+ def user_id
7
+ params.fetch("user_id").to_i
8
+ end
18
9
 
19
- page(params, :identities, "/users/#{user_id}/identities.json", "identities", filter: lambda { |c| c.select { |a| a["user_id"].to_s == user_id.to_s } })
20
- end
21
- end # Mock
10
+ def mock
11
+ identities = service.data[:identities].values.select { |a| a["user_id"] == user_id }
12
+
13
+ page(identities, root: "identities")
14
+ end
22
15
  end
@@ -1,25 +1,15 @@
1
- class Zendesk2::Client
2
- class Real
3
- def get_user_identity(params={})
4
- id = params["id"]
5
- user_id = params["user_id"]
6
- path = "/users/#{user_id}/identities/#{id}.json"
1
+ class Zendesk2::Client::GetUserIdentity < Zendesk2::Client::Request
2
+ request_path { |r| "/users/#{r.user_id}/identities/#{r.user_identity_id}.json" }
7
3
 
8
- request(:path => path)
9
- end
10
- end # Real
4
+ def user_identity_id
5
+ params.fetch("user_identity").fetch("id").to_i
6
+ end
11
7
 
12
- class Mock
13
- def get_user_identity(params={})
14
- id = params["id"]
15
- user_id = params["user_id"]
8
+ def user_id
9
+ params.fetch("user_identity").fetch("user_id").to_i
10
+ end
16
11
 
17
- response(
18
- :path => "/users/#{user_id}/identities/#{id}.json",
19
- :body => {
20
- "identity" => find!(:identities, id)
21
- },
22
- )
23
- end
24
- end # Mock
12
+ def mock
13
+ mock_response("identity" => find!(:identities, user_identity_id))
14
+ end
25
15
  end