summaryrefslogtreecommitdiff
path: root/lib/pleroma/uploaders/uploader.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/uploaders/uploader.ex')
-rw-r--r--lib/pleroma/uploaders/uploader.ex25
1 files changed, 15 insertions, 10 deletions
diff --git a/lib/pleroma/uploaders/uploader.ex b/lib/pleroma/uploaders/uploader.ex
index 8ef82b4ef..afda5609e 100644
--- a/lib/pleroma/uploaders/uploader.ex
+++ b/lib/pleroma/uploaders/uploader.ex
@@ -16,20 +16,25 @@ defmodule Pleroma.Uploaders.Uploader do
Returns:
+ * `:ok` which assumes `{:ok, upload.path}`
* `{:ok, spec}` where spec is:
* `{:file, filename :: String.t}` to handle reads with `get_file/1` (recommended)
- This allows to correctly proxy or redirect requests to the backend, while allowing to migrate backends without breaking any URL.
-
- * `{url, url :: String.t}` to bypass `get_file/2` and use the `url` directly in the activity.
+ This allows to correctly proxy or redirect requests to the backend, while allowing to migrate backends without breaking any URL.
+ * `{url, url :: String.t}` to bypass `get_file/2` and use the `url` directly in the activity.
* `{:error, String.t}` error information if the file failed to be saved to the backend.
+
"""
- @callback put_file(
- name :: String.t(),
- uuid :: String.t(),
- file :: File.t(),
- content_type :: String.t(),
- options :: Map.t()
- ) :: {:ok, {:file, String.t()} | {:url, String.t()}} | {:error, String.t()}
+ @callback put_file(Pleroma.Upload.t()) ::
+ :ok | {:ok, {:file | :url, String.t()}} | {:error, String.t()}
+
+ @spec put_file(module(), Pleroma.Upload.t()) ::
+ {:ok, {:file | :url, String.t()}} | {:error, String.t()}
+ def put_file(uploader, upload) do
+ case uploader.put_file(upload) do
+ :ok -> {:ok, {:file, upload.path}}
+ other -> other
+ end
+ end
end