diff options
author | Alex Gleason <alex@alexgleason.me> | 2021-08-05 09:43:24 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-08-05 11:11:24 -0500 |
commit | b83758bd9634d4f2fb70a92159072dd44e49bb31 (patch) | |
tree | 2452e8c4e1544fc9a0ad71292901b6cd52765566 /lib/pleroma/reverse_proxy | |
parent | 2b3d7794b23aac30cf8f977009d17b1abc602d19 (diff) | |
parent | 5f5dc24027ee5cfadd226c5db2e2a2bdb0ababe0 (diff) | |
download | pleroma-b83758bd9634d4f2fb70a92159072dd44e49bb31.tar.gz |
Merge remote-tracking branch 'pleroma/develop' into moderators
Diffstat (limited to 'lib/pleroma/reverse_proxy')
-rw-r--r-- | lib/pleroma/reverse_proxy/client.ex | 18 | ||||
-rw-r--r-- | lib/pleroma/reverse_proxy/client/wrapper.ex | 29 |
2 files changed, 29 insertions, 18 deletions
diff --git a/lib/pleroma/reverse_proxy/client.ex b/lib/pleroma/reverse_proxy/client.ex index 8698fa2e1..75243d2dc 100644 --- a/lib/pleroma/reverse_proxy/client.ex +++ b/lib/pleroma/reverse_proxy/client.ex @@ -17,22 +17,4 @@ defmodule Pleroma.ReverseProxy.Client do @callback stream_body(map()) :: {:ok, binary(), map()} | :done | {:error, atom() | String.t()} @callback close(reference() | pid() | map()) :: :ok - - def request(method, url, headers, body \\ "", opts \\ []) do - client().request(method, url, headers, body, opts) - end - - def stream_body(ref), do: client().stream_body(ref) - - def close(ref), do: client().close(ref) - - defp client do - :tesla - |> Application.get_env(:adapter) - |> client() - end - - defp client(Tesla.Adapter.Hackney), do: Pleroma.ReverseProxy.Client.Hackney - defp client(Tesla.Adapter.Gun), do: Pleroma.ReverseProxy.Client.Tesla - defp client(_), do: Pleroma.Config.get!(Pleroma.ReverseProxy.Client) end diff --git a/lib/pleroma/reverse_proxy/client/wrapper.ex b/lib/pleroma/reverse_proxy/client/wrapper.ex new file mode 100644 index 000000000..06dd29fea --- /dev/null +++ b/lib/pleroma/reverse_proxy/client/wrapper.ex @@ -0,0 +1,29 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.ReverseProxy.Client.Wrapper do + @moduledoc "Meta-client that calls the appropriate client from the config." + @behaviour Pleroma.ReverseProxy.Client + + @impl true + def request(method, url, headers, body \\ "", opts \\ []) do + client().request(method, url, headers, body, opts) + end + + @impl true + def stream_body(ref), do: client().stream_body(ref) + + @impl true + def close(ref), do: client().close(ref) + + defp client do + :tesla + |> Application.get_env(:adapter) + |> client() + end + + defp client(Tesla.Adapter.Hackney), do: Pleroma.ReverseProxy.Client.Hackney + defp client(Tesla.Adapter.Gun), do: Pleroma.ReverseProxy.Client.Tesla + defp client(_), do: Pleroma.Config.get!(Pleroma.ReverseProxy.Client) +end |