diff options
Diffstat (limited to 'lib/pleroma/reverse_proxy/client.ex')
| -rw-r--r-- | lib/pleroma/reverse_proxy/client.ex | 28 | 
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/pleroma/reverse_proxy/client.ex b/lib/pleroma/reverse_proxy/client.ex new file mode 100644 index 000000000..776c4794c --- /dev/null +++ b/lib/pleroma/reverse_proxy/client.ex @@ -0,0 +1,28 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.ReverseProxy.Client do +  @callback request(atom(), String.t(), [tuple()], String.t(), list()) :: +              {:ok, pos_integer(), [tuple()], reference() | map()} +              | {:ok, pos_integer(), [tuple()]} +              | {:ok, reference()} +              | {:error, term()} + +  @callback stream_body(reference() | pid() | map()) :: +              {:ok, binary()} | :done | {:error, String.t()} + +  @callback close(reference() | pid() | map()) :: :ok + +  def request(method, url, headers, "", opts \\ []) do +    client().request(method, url, headers, "", opts) +  end + +  def stream_body(ref), do: client().stream_body(ref) + +  def close(ref), do: client().close(ref) + +  defp client do +    Pleroma.Config.get([Pleroma.ReverseProxy.Client], :hackney) +  end +end  | 
