diff options
author | Alex Gleason <alex@alexgleason.me> | 2021-08-04 11:48:57 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-08-04 11:48:57 -0500 |
commit | 44ede0657f2da0a761de76b1f9822a293430d497 (patch) | |
tree | 387a8915bdb6ff1295f4f0872b2e6bc97e177831 /lib/pleroma/reverse_proxy | |
parent | 1f093cb216ed0d6b0d23b05e1ffbbf55dc72bbee (diff) | |
parent | d8a986c9e893de8eed3aa336a557695669b1ffee (diff) | |
download | pleroma-44ede0657f2da0a761de76b1f9822a293430d497.tar.gz |
Merge remote-tracking branch 'pleroma/develop' into staff-plug
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 |