aboutsummaryrefslogtreecommitdiff
path: root/lib/zendex/ticket.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/zendex/ticket.ex')
-rw-r--r--lib/zendex/ticket.ex23
1 files changed, 14 insertions, 9 deletions
diff --git a/lib/zendex/ticket.ex b/lib/zendex/ticket.ex
index b6ccad9..c1f3edc 100644
--- a/lib/zendex/ticket.ex
+++ b/lib/zendex/ticket.ex
@@ -8,21 +8,26 @@ defmodule Zendex.Ticket do
@http_client Application.get_env(:zendex, :http_client)
- @spec list(Zendex.Connection.t) :: HTTPoison.Response.t
+ @spec list(Zendex.Connection.t) :: map
def list(connection) do
- full_url = connection.base_url <> @url
-
- @http_client.get!(full_url, headers(connection.authentication))
+ connection.base_url
+ |> Kernel.<>(@url)
+ |> @http_client.get!(headers(connection.authentication))
+ |> decode_response
end
- @spec create(Zendex.Connection.t, map) :: HTTPoison.Response.t
+ @spec create(Zendex.Connection.t, map) :: map
def create(connection, ticket) do
- @http_client.post!(connection.base_url <> @url,
- Poison.encode!(ticket),
- headers(connection.authentication) ++
- [{"Content-Type", "application/json"}])
+ response = @http_client.post!(connection.base_url <> @url,
+ Poison.encode!(ticket),
+ headers(connection.authentication) ++
+ [{"Content-Type", "application/json"}])
+
+ decode_response(response)
end
+ defp decode_response(%{body: body}), do: Poison.decode!(body)
+
defp headers(authentication) do
[{"Authorization", "Basic #{authentication}"}]
end