From bf62e2d177726a5921b485988c89764dd34eae3f Mon Sep 17 00:00:00 2001 From: Steven Blowers Date: Tue, 1 Nov 2016 14:19:53 +0000 Subject: adding ability to get related info on a user --- lib/http_client/in_memory.ex | 14 ++++++++++++++ lib/zendex/user.ex | 7 +++++++ test/zendex/user_test.exs | 14 ++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/lib/http_client/in_memory.ex b/lib/http_client/in_memory.ex index b74450e..4c43211 100644 --- a/lib/http_client/in_memory.ex +++ b/lib/http_client/in_memory.ex @@ -70,6 +70,20 @@ defmodule Zendex.HttpClient.InMemory do %{id: 67, name: "Sarpedon Baumgartner"}]}) end + def get!("#{@base_url}/api/v2/users/649267/related.json", + [{"Authorization", _authentication}]) do + fake_response(%{"user_related" => %{"assigned_tickets" => 12, + "ccd_tickets" => 5, + "entry_subscriptions" => 1, + "forum_subscriptions" => 3, + "organization_subscriptions" => 1, + "requested_tickets" => 7, + "subscriptions" => 6, + "topic_comments" => 116, + "topics" => 5, + "votes" => 2001}}) + end + def post!(@base_url <> "/api/v2/tickets.json", "{\"ticket\":{}}", [{"Authorization", _authentication}, {"Content-Type", "application/json"}]) do diff --git a/lib/zendex/user.ex b/lib/zendex/user.ex index 88487f3..3983432 100644 --- a/lib/zendex/user.ex +++ b/lib/zendex/user.ex @@ -81,6 +81,13 @@ defmodule Zendex.User do |> CommonHelpers.decode_response end + @spec related_information(Zendex.Connection.t, integer) :: map + def related_information(connection, id) do + "#{connection.base_url}#{@url}/#{id}/related.json" + |> @http_client.get!(CommonHelpers.get_headers(connection.authentication)) + |> CommonHelpers.decode_response + end + @doc """ Create a new user. """ diff --git a/test/zendex/user_test.exs b/test/zendex/user_test.exs index b4aaaec..f260f62 100644 --- a/test/zendex/user_test.exs +++ b/test/zendex/user_test.exs @@ -62,6 +62,20 @@ defmodule Zendex.UserTest do assert expected == actual end + test "getting related info on a user", context do + expected = %{"user_related" => %{"assigned_tickets" => 12, + "ccd_tickets" => 5, + "entry_subscriptions" => 1, + "forum_subscriptions" => 3, + "organization_subscriptions" => 1, + "requested_tickets" => 7, + "subscriptions" => 6, + "topic_comments" => 116, + "topics" => 5, + "votes" => 2001}} + actual = Zendex.User.related_information(context[:conn], 649267) + end + test "creating a user", context do expected = %{"user" => %{"id" => 1234, "name" => "Roger", "email" => "roger@dodger.com"}} actual = Zendex.User.create(context[:conn], %{user: %{name: "Roger", email: "roger@dodger.com"}}) -- cgit v1.2.1