Current section

Files

Jump to
ami lib ami affiliate_logo_attachment.ex
Raw

lib/ami/affiliate_logo_attachment.ex

defmodule Ami.AffiliateLogoAttachment do
use Ecto.Schema
use Arc.Ecto.Schema
import Ecto.{
Changeset
}
alias Ami.{
Course,
Repo
}
alias Ami.AffiliateLogoAttachmentUploader.Type
schema "affiliate_logo_attachments" do
@timestamps_opts [type: :naive_datetime_usec]
field(:name, :string)
field(:file, Type)
timestamps()
belongs_to(:course, Course)
end
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:course_id, :name])
|> cast_attachments(params, [:file])
|> case do
%{valid?: false, changes: changes} = changeset when changes == %{} ->
%{changeset | action: :ignore}
changeset ->
changeset
end
end
def affiliate_logo_for_course(logos_list) do
logo = List.last(logos_list)
env = Application.get_env(:ami_web, :env)
if !is_nil(logo) do
case Regex.match?(~r{/\d+/\w+}, logo.file.file_name) do
true ->
case env do
:dev ->
"https://ami-aws-staging.s3.amazonaws.com/uploads/affiliate_logo/file#{
logo.file.file_name
}"
:staging ->
"https://ami-aws-staging.s3.amazonaws.com/uploads/affiliate_logo/file#{
logo.file.file_name
}"
:prod ->
"https://ami-aws-s3.s3.amazonaws.com/uploads/affiliate_logo/file#{
logo.file.file_name
}"
end
_ ->
case env do
:dev ->
"https://ami-aws-staging.s3.amazonaws.com/uploads/affiliate_logo/file/#{
logo.file.file_name
}"
:staging ->
"https://ami-aws-staging.s3.amazonaws.com/uploads/affiliate_logo/file/#{
logo.file.file_name
}"
:prod ->
"https://ami-aws-s3.s3.amazonaws.com/uploads/affiliate_logo/file/#{
logo.file.file_name
}"
end
end
end
end
end