defmodule Ami.ProfileImageUploader do use Arc.Definition use Arc.Ecto.Definition @acl :public_read_write @versions [:original, :thumb, :small_thumb] def validate({file, _}) do ~w(.jpg .jpeg .gif .png) |> Enum.member?(Path.extname(file.file_name)) end def transform(:thumb, _) do {:convert, "-strip -thumbnail 200x200^ -gravity center -extent 200x200 -format png", :png} end def transform(:small_thumb, _) do {:convert, "-strip -thumbnail 50x50^ -gravity center -extent 50x50 -format png", :png} end def filename(version, {file, _scope}) do file_name = Path.basename(file.file_name, Path.extname(file.file_name)) "#{version}_#{file_name}" end def storage_dir(version, {_file, scope}) do "uploads/profiles/image/#{version}" end def defautl_url(_version, _scope) do "static/images/profiles/nav_profile_default.png" end end