Current section
Files
Jump to
Current section
Files
lib/preparer.ex
defmodule Uex.Preparer do
def prepare(%Uex{} = uex, resolver, provided_opts) do
uex
|> resolver.resolve()
|> put_opts(provided_opts)
|> put_meta()
end
defp put_opts(%Uex{opts: opts} = uex, provided_opts) do
%Uex{uex | opts: Keyword.merge(provided_opts, opts)}
end
defp put_opts(reply, _), do: reply
defp put_meta(%Uex{file_path: path, file_name: file_name} = uex) do
with {:ok, %File.Stat{} = stat} <- File.stat(path) do
uex
|> Uex.set_extension(Path.extname(file_name || path))
|> Uex.set_content_type(MIME.from_path(file_name))
|> Uex.set_file_size(stat.size)
end
end
defp put_meta(reply), do: reply
end