summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Maradonna <penguyman@stronzi.org>2022-05-09 12:15:40 +0200
committerClaudio Maradonna <penguyman@stronzi.org>2022-07-07 06:29:13 +0200
commit7c1af86f979ecebcd38995e5278fe2d59a36eda5 (patch)
treea205ae5ee8c61f4315f62fb68ac9839563608e31
parent44659ecd65fb2251f9130fcecf1732b8931104c1 (diff)
downloadpleroma-7c1af86f979ecebcd38995e5278fe2d59a36eda5.tar.gz
pleroma-7c1af86f979ecebcd38995e5278fe2d59a36eda5.zip
ipfs: refactor final_url generation. add tests for final_url
fix lint
-rw-r--r--lib/pleroma/uploaders/ipfs.ex19
-rw-r--r--test/pleroma/uploaders/ipfs_test.exs13
2 files changed, 22 insertions, 10 deletions
diff --git a/lib/pleroma/uploaders/ipfs.ex b/lib/pleroma/uploaders/ipfs.ex
index dde520d8e..7a7481d81 100644
--- a/lib/pleroma/uploaders/ipfs.ex
+++ b/lib/pleroma/uploaders/ipfs.ex
@@ -12,6 +12,13 @@ defmodule Pleroma.Uploaders.IPFS do
@placeholder "{CID}"
def placeholder, do: @placeholder
+ def get_final_url(method) do
+ config = Config.get([__MODULE__])
+ post_base_url = Keyword.get(config, :post_gateway_url)
+
+ Path.join([post_base_url, method])
+ end
+
@impl true
def get_file(file) do
b_url = Pleroma.Upload.base_url()
@@ -25,15 +32,12 @@ defmodule Pleroma.Uploaders.IPFS do
@impl true
def put_file(%Pleroma.Upload{} = upload) do
- config = Config.get([__MODULE__])
- post_base_url = Keyword.get(config, :post_gateway_url)
-
mp =
Multipart.new()
|> Multipart.add_content_type_param("charset=utf-8")
|> Multipart.add_file(upload.tempfile)
- final_url = Path.join([post_base_url, "/api/v0/add"])
+ final_url = get_final_url("/api/v0/add")
case Pleroma.HTTP.post(final_url, mp, [], params: ["cid-version": "1"]) do
{:ok, ret} ->
@@ -42,7 +46,7 @@ defmodule Pleroma.Uploaders.IPFS do
if Map.has_key?(ret, "Hash") do
{:ok, {:file, ret["Hash"]}}
else
- {:error, "JSON doesn't contain Hash value"}
+ {:error, "JSON doesn't contain Hash key"}
end
error ->
@@ -58,10 +62,7 @@ defmodule Pleroma.Uploaders.IPFS do
@impl true
def delete_file(file) do
- config = Config.get([__MODULE__])
- post_base_url = Keyword.get(config, :post_gateway_url)
-
- final_url = Path.join([post_base_url, "/api/v0/files/rm"])
+ final_url = get_final_url("/api/v0/files/rm")
case Pleroma.HTTP.post(final_url, "", [], params: [arg: file]) do
{:ok, %{status_code: 204}} -> :ok
diff --git a/test/pleroma/uploaders/ipfs_test.exs b/test/pleroma/uploaders/ipfs_test.exs
index fc87fa378..d567272d2 100644
--- a/test/pleroma/uploaders/ipfs_test.exs
+++ b/test/pleroma/uploaders/ipfs_test.exs
@@ -23,6 +23,16 @@ defmodule Pleroma.Uploaders.IPFSTest do
clear_config([Pleroma.Uploaders.IPFS, :post_gateway_url], "http://localhost:5001")
end
+ describe "get_final_url" do
+ test "it returns the final url for put_file" do
+ assert IPFS.get_final_url("/api/v0/add") == "http://localhost:5001/api/v0/add"
+ end
+
+ test "it returns the final url for delete_file" do
+ assert IPFS.get_final_url("/api/v0/files/rm") == "http://localhost:5001/api/v0/files/rm"
+ end
+ end
+
describe "get_file/1" do
test "it returns path to ipfs file with cid as subdomain" do
assert IPFS.get_file("testcid") == {
@@ -62,7 +72,8 @@ defmodule Pleroma.Uploaders.IPFSTest do
{:ok,
%Tesla.Env{
status: 200,
- body: "{\"Hash\":\"bafybeicrh7ltzx52yxcwrvxxckfmwhqdgsb6qym6dxqm2a4ymsakeshwoi\"}"
+ body:
+ "{\"Name\":\"image-tet.jpg\",\"Size\":\"5000\", \"Hash\":\"bafybeicrh7ltzx52yxcwrvxxckfmwhqdgsb6qym6dxqm2a4ymsakeshwoi\"}"
}}
end do
assert IPFS.put_file(file_upload) ==