aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Blowers <shdblowers@gmail.com>2016-10-30 17:48:18 +0000
committerSteven Blowers <shdblowers@gmail.com>2016-10-30 17:48:18 +0000
commit687caf80ebd23ab659bed97f5ee43f97a8b182df (patch)
treed72002f23295d0e90aaa1dfeddd1b875ca3db101
parent6894ba18c6da270cb387cf8fa974b1da259bf361 (diff)
downloadzendex-687caf80ebd23ab659bed97f5ee43f97a8b182df.tar.gz
zendex-687caf80ebd23ab659bed97f5ee43f97a8b182df.tar.xz
adding functionality to list all users
-rw-r--r--lib/http_client/in_memory.ex13
-rw-r--r--lib/zendex/user.ex8
-rw-r--r--test/zendex/ticket_test.exs3
-rw-r--r--test/zendex/user_test.exs7
4 files changed, 28 insertions, 3 deletions
diff --git a/lib/http_client/in_memory.ex b/lib/http_client/in_memory.ex
index 91e5d84..50c5436 100644
--- a/lib/http_client/in_memory.ex
+++ b/lib/http_client/in_memory.ex
@@ -21,11 +21,20 @@ defmodule Zendex.HttpClient.InMemory do
fake_response(["Reginald Ticket 1", "Reginald Ticket 2"])
end
- def post!(@base_url <> "/api/v2/tickets.json", "{\"ticket\":{}}", [{"Authorization", _authentication}, {"Content-Type", "application/json"}]) do
+ def get!(@base_url <> "/api/v2/users.json",
+ [{"Authorization", _authentication}]) do
+ fake_response("users")
+ end
+
+ def post!(@base_url <> "/api/v2/tickets.json",
+ "{\"ticket\":{}}",
+ [{"Authorization", _authentication}, {"Content-Type", "application/json"}]) do
fake_response("Ticket created successfully!")
end
- def post!(@base_url <> "/api/v2/users.json", "{\"user\":{\"name\":\"Roger\",\"email\":\"roger@dodger.com\"}}", [{"Authorization", _authentication}, {"Content-Type", "application/json"}]) do
+ def post!(@base_url <> "/api/v2/users.json",
+ "{\"user\":{\"name\":\"Roger\",\"email\":\"roger@dodger.com\"}}",
+ [{"Authorization", _authentication}, {"Content-Type", "application/json"}]) do
fake_response(%{user: %{id: 1234, name: "Roger", email: "roger@dodger.com"}})
end
diff --git a/lib/zendex/user.ex b/lib/zendex/user.ex
index decb30b..2d5d2d8 100644
--- a/lib/zendex/user.ex
+++ b/lib/zendex/user.ex
@@ -8,6 +8,14 @@ defmodule Zendex.User do
@url "/api/v2/users.json"
@http_client Application.get_env(:zendex, :http_client)
+ @spec list(Zendex.Connection.t) :: map
+ def list(connection) do
+ connection.base_url
+ |> Kernel.<>(@url)
+ |> @http_client.get!(CommonHelpers.get_headers(connection.authentication))
+ |> CommonHelpers.decode_response
+ end
+
@spec create(Zendex.Connection.t, map) :: map
def create(connection, user) do
connection.base_url
diff --git a/test/zendex/ticket_test.exs b/test/zendex/ticket_test.exs
index 06b6227..1f1ea92 100644
--- a/test/zendex/ticket_test.exs
+++ b/test/zendex/ticket_test.exs
@@ -10,6 +10,7 @@ defmodule Zendex.TicketTest do
end
test "creating a ticket", context do
- assert "Ticket created successfully!" == Zendex.Ticket.create(context[:conn], %{"ticket": %{}})
+ assert "Ticket created successfully!" ==
+ Zendex.Ticket.create(context[:conn], %{"ticket": %{}})
end
end
diff --git a/test/zendex/user_test.exs b/test/zendex/user_test.exs
index 192f0b2..1c8af23 100644
--- a/test/zendex/user_test.exs
+++ b/test/zendex/user_test.exs
@@ -5,6 +5,13 @@ defmodule Zendex.UserTest do
[conn: Zendex.Connection.set_up("http://test.zendesk.com", "User1", "pass")]
end
+ test "list users", context do
+ expected = "users"
+ actual = Zendex.User.list(context[:conn])
+
+ assert expected == actual
+ 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"}})