aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/reverse_proxy/client.ex
diff options
context:
space:
mode:
authorMark Felder <feld@FreeBSD.org>2019-07-15 17:10:27 -0500
committerMark Felder <feld@FreeBSD.org>2019-07-15 17:10:27 -0500
commitffb4eb9779ddd28ecee84c06e8dc58f4a4daaa38 (patch)
treeb397d1192c69a7d089c86d41b6e09e89954ea798 /lib/pleroma/reverse_proxy/client.ex
parente912f81c828cc7e1d2c0dff8daed3ad52f407a61 (diff)
parent03bcb40883dafa2886110e2b625c4cc5c21106f1 (diff)
downloadpleroma-ffb4eb9779ddd28ecee84c06e8dc58f4a4daaa38.tar.gz
Merge branch 'develop' into feature/matstodon-statuses-by-name
Diffstat (limited to 'lib/pleroma/reverse_proxy/client.ex')
-rw-r--r--lib/pleroma/reverse_proxy/client.ex28
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