aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Blowers <sblowers@findmypast.com>2016-09-16 17:00:57 +0100
committerSteven Blowers <sblowers@findmypast.com>2016-09-16 17:00:57 +0100
commit542a3896653b986566bfa4dde2984a817de60441 (patch)
treef1c88a2605e4862f7374a435931c32ec0740963b
parent05209545148e094a8ae92b7206a0962db114d060 (diff)
downloadzendex-542a3896653b986566bfa4dde2984a817de60441.tar.gz
zendex-542a3896653b986566bfa4dde2984a817de60441.tar.xz
adding functionality to create user
-rw-r--r--lib/zendex/user.ex21
-rw-r--r--test/zendex/user_test.exs14
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