diff options
-rw-r--r-- | lib/zendex/user.ex | 21 | ||||
-rw-r--r-- | test/zendex/user_test.exs | 14 |
2 files changed, 35 insertions, 0 deletions
diff --git a/lib/zendex/user.ex b/lib/zendex/user.ex new file mode 100644 index 0000000..decb30b --- /dev/null +++ b/lib/zendex/user.ex @@ -0,0 +1,21 @@ +defmodule Zendex.User do + @moduledoc """ + Interact with Zendesk user. + """ + + alias Zendex.CommonHelpers + + @url "/api/v2/users.json" + @http_client Application.get_env(:zendex, :http_client) + + @spec create(Zendex.Connection.t, map) :: map + def create(connection, user) do + connection.base_url + |> Kernel.<>(@url) + |> @http_client.post!(Poison.encode!(user), + CommonHelpers.get_headers(connection.authentication, + %{content_type: :json})) + |> CommonHelpers.decode_response + end + +end diff --git a/test/zendex/user_test.exs b/test/zendex/user_test.exs new file mode 100644 index 0000000..192f0b2 --- /dev/null +++ b/test/zendex/user_test.exs @@ -0,0 +1,14 @@ +defmodule Zendex.UserTest do + use ExUnit.Case, async: true + + setup do + [conn: Zendex.Connection.set_up("http://test.zendesk.com", "User1", "pass")] + 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"}}) + + assert expected == actual + end +end |