Current section

Files

Jump to
kadabra lib kadabra.ex
Raw

lib/kadabra.ex

defmodule Kadabra do
@moduledoc """
HTTP/2 client for Elixir.
"""
alias Kadabra.{Connection}
def open(uri, scheme, opts \\ []) do
case Connection.start_link(uri, self, scheme: scheme, ssl: opts) do
{:ok, pid} -> {:ok, pid}
{:error, reason} -> {:error, reason}
end
end
def close(pid), do: GenServer.cast(pid, {:send, :goaway})
def ping(pid), do: GenServer.cast(pid, {:send, :ping})
def request(pid, headers), do: GenServer.cast(pid, {:send, :headers, headers})
def request(pid, headers, payload) do
GenServer.cast(pid, {:send, :headers, headers, payload})
end
def get(pid, path) do
headers = [
{":method", "GET"},
{":path", path},
]
request(pid, headers)
end
def post(pid, path, payload) do
headers = [
{":method", "POST"},
{":path", path},
]
request(pid, headers, payload)
end
def put(pid, path, payload) do
headers = [
{":method", "PUT"},
{":path", path},
]
request(pid, headers, payload)
end
end