From 7ed1bfc69b7efd31a04c7fc09cdd6f0432e45131 Mon Sep 17 00:00:00 2001 From: Steven Blowers Date: Sun, 30 Oct 2016 18:11:42 +0000 Subject: adding ability to show user --- lib/http_client/in_memory.ex | 5 +++++ lib/zendex/user.ex | 13 ++++++++++++- test/zendex/user_test.exs | 7 +++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/http_client/in_memory.ex b/lib/http_client/in_memory.ex index 50c5436..d05bcea 100644 --- a/lib/http_client/in_memory.ex +++ b/lib/http_client/in_memory.ex @@ -26,6 +26,11 @@ defmodule Zendex.HttpClient.InMemory do fake_response("users") end + def get!("#{@base_url}/api/v2/users/87.json", + [{"Authorization", _authentication}]) do + fake_response(%{"user": %{"id": 87, "name": "Quim Stroud"}}) + 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 2d5d2d8..a62a05e 100644 --- a/lib/zendex/user.ex +++ b/lib/zendex/user.ex @@ -5,13 +5,23 @@ defmodule Zendex.User do alias Zendex.CommonHelpers - @url "/api/v2/users.json" + @url "/api/v2/users" @http_client Application.get_env(:zendex, :http_client) @spec list(Zendex.Connection.t) :: map def list(connection) do connection.base_url |> Kernel.<>(@url) + |> Kernel.<>(".json") + |> @http_client.get!(CommonHelpers.get_headers(connection.authentication)) + |> CommonHelpers.decode_response + end + + @spec show(Zendex.Connection.t, integer) :: map + def show(connection, id) do + connection.base_url + |> Kernel.<>(@url) + |> Kernel.<>("/#{id}.json") |> @http_client.get!(CommonHelpers.get_headers(connection.authentication)) |> CommonHelpers.decode_response end @@ -20,6 +30,7 @@ defmodule Zendex.User do def create(connection, user) do connection.base_url |> Kernel.<>(@url) + |> Kernel.<>(".json") |> @http_client.post!(Poison.encode!(user), CommonHelpers.get_headers(connection.authentication, %{content_type: :json})) diff --git a/test/zendex/user_test.exs b/test/zendex/user_test.exs index 1c8af23..3964aac 100644 --- a/test/zendex/user_test.exs +++ b/test/zendex/user_test.exs @@ -12,6 +12,13 @@ defmodule Zendex.UserTest do assert expected == actual end + test "showing a user", context do + expected = %{"user" => %{"id" => 87, "name" => "Quim Stroud"}} + actual = Zendex.User.show(context[:conn], 87) + + 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"}}) -- cgit v1.2.1