summaryrefslogtreecommitdiff
path: root/lib/pleroma/reverse_proxy/client.ex
diff options
context:
space:
mode:
authorRoman Chvanikov <chvanikoff@pm.me>2019-07-09 21:21:09 +0300
committerRoman Chvanikov <chvanikoff@pm.me>2019-07-09 21:21:09 +0300
commit371d39e160efa51f2fe608e1788f6b11b89d9839 (patch)
treeb5dc6280d713f11392fd47bffd1a675b527162f5 /lib/pleroma/reverse_proxy/client.ex
parentd2cb18b2a342b990cc47dfdc42adb843c3db1b5e (diff)
parent670a77ecbc94d57c6ecb5e569597e81cee4b5532 (diff)
downloadpleroma-371d39e160efa51f2fe608e1788f6b11b89d9839.tar.gz
pleroma-371d39e160efa51f2fe608e1788f6b11b89d9839.zip
Merge develop
Diffstat (limited to 'lib/pleroma/reverse_proxy/client.ex')
-rw-r--r--lib/pleroma/reverse_proxy/client.ex24
1 files changed, 24 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..57c2d2cfd
--- /dev/null
+++ b/lib/pleroma/reverse_proxy/client.ex
@@ -0,0 +1,24 @@
+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