zendesk2 1.4.2 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
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