aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/reverse_proxy/client.ex
diff options
context:
space:
mode:
authorIvan Tashkinov <ivant.business@gmail.com>2019-07-09 21:46:16 +0300
committerIvan Tashkinov <ivant.business@gmail.com>2019-07-09 21:46:16 +0300
commit829e99722396c2372770f50d9fc7cfa40c441005 (patch)
tree6b72aa4ac5e049eb8bf444ade64e8da4499ef023 /lib/pleroma/reverse_proxy/client.ex
parent46cf81a544edd91f4c3893897fbe2db053f5f6d5 (diff)
parent2bb945cb70751bc8e72c036040130bb54c32f391 (diff)
downloadpleroma-829e99722396c2372770f50d9fc7cfa40c441005.tar.gz
[#878] Merge remote-tracking branch 'remotes/upstream/develop' into 878-activity-object-decoupling-in-tests
# Conflicts: # lib/pleroma/object.ex # test/web/activity_pub/transmogrifier_test.exs # test/web/ostatus/ostatus_test.exs
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