From db121fee303a1a8076439eb2172eb55202280e33 Mon Sep 17 00:00:00 2001 From: Afonso Martins Date: Fri, 4 Oct 2024 23:15:56 +0100 Subject: [PATCH] feat: add max_size for file --- lib/atomic/uploader.ex | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/atomic/uploader.ex b/lib/atomic/uploader.ex index 8bb59c9fe..b029f4429 100644 --- a/lib/atomic/uploader.ex +++ b/lib/atomic/uploader.ex @@ -9,18 +9,29 @@ defmodule Atomic.Uploader do use Waffle.Definition use Waffle.Ecto.Definition - def validate({file, _}) do + def validate(file, _) do file_extension = file.file_name |> Path.extname() |> String.downcase() case Enum.member?(extension_whitelist(), file_extension) do - true -> :ok - false -> {:error, "invalid file extension"} + true -> + if file.size <= max_size() do + :ok + else + {:error, "file size exceeds maximum allowed size"} + end + + false -> + {:error, "invalid file extension"} end end def extension_whitelist do Keyword.get(unquote(opts), :extensions, []) end + + def max_size do + Keyword.get(unquote(opts), :max_size, 500) + end end end end