4f45255f127145a4c0de6ae03c7d20db45849844
[akkoma] / lib / pleroma / uploaders / swift / swift.ex
1 defmodule Pleroma.Uploaders.Swift.Client do
2 use HTTPoison.Base
3
4 @settings Application.get_env(:pleroma, Pleroma.Uploaders.Swift)
5
6 def process_url(url) do
7 Enum.join(
8 [Keyword.fetch!(@settings, :storage_url), url],
9 "/"
10 )
11 end
12
13 def upload_file(filename, body, content_type) do
14 token = Pleroma.Uploaders.Swift.Keystone.get_token()
15
16 case put("#{filename}", body, "X-Auth-Token": token, "Content-Type": content_type) do
17 {:ok, %HTTPoison.Response{status_code: 201}} ->
18 # lgtm
19 ""
20
21 {:ok, %HTTPoison.Response{status_code: 401}} ->
22 # bad token
23 ""
24
25 {:error, _} ->
26 # bad news
27 ""
28 end
29 end
30 end