diff options
author | Steven Blowers <sblowers@findmypast.com> | 2016-09-16 17:00:57 +0100 |
---|---|---|
committer | Steven Blowers <sblowers@findmypast.com> | 2016-09-16 17:00:57 +0100 |
commit | 542a3896653b986566bfa4dde2984a817de60441 (patch) | |
tree | f1c88a2605e4862f7374a435931c32ec0740963b | |
parent | 05209545148e094a8ae92b7206a0962db114d060 (diff) | |
download | zendex-542a3896653b986566bfa4dde2984a817de60441.tar.gz zendex-542a3896653b986566bfa4dde2984a817de60441.tar.xz |
adding functionality to create user
-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 |