+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Uploaders.Swift.Keystone do
use HTTPoison.Base
- @settings Application.get_env(:pleroma, Pleroma.Uploaders.Swift)
-
def process_url(url) do
Enum.join(
- [Keyword.fetch!(@settings, :auth_url), url],
+ [Pleroma.Config.get!([Pleroma.Uploaders.Swift, :auth_url]), url],
"/"
)
end
def process_response_body(body) do
body
- |> Poison.decode!()
+ |> Jason.decode!()
end
- def get_token() do
- username = Keyword.fetch!(@settings, :username)
- password = Keyword.fetch!(@settings, :password)
- tenant_id = Keyword.fetch!(@settings, :tenant_id)
+ def get_token do
+ settings = Pleroma.Config.get(Pleroma.Uploaders.Swift)
+ username = Keyword.fetch!(settings, :username)
+ password = Keyword.fetch!(settings, :password)
+ tenant_id = Keyword.fetch!(settings, :tenant_id)
case post(
"/tokens",
["Content-Type": "application/json"],
hackney: [:insecure]
) do
- {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
+ {:ok, %Tesla.Env{status: 200, body: body}} ->
body["access"]["token"]["id"]
- {:ok, %HTTPoison.Response{status_code: _}} ->
+ {:ok, %Tesla.Env{status: _}} ->
""
end
end
def make_auth_body(username, password, tenant) do
- Poison.encode!(%{
+ Jason.encode!(%{
:auth => %{
:passwordCredentials => %{
:username => username,