diff options
Diffstat (limited to 'lib/zendex/ticket.ex')
-rw-r--r-- | lib/zendex/ticket.ex | 23 |
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 |