defmodule Ami.ResourceAttachment do use Ecto.Schema use Arc.Ecto.Schema import Ecto.{ Query, Changeset } alias Ami.{ Repo, Lesson, Resource } alias Ami.ResourceAttachmentUploader.Type schema "resource_attachments" do field(:title, :string) field(:description, :string) field(:file, Type) timestamps() end def changeset(struct, params \\ %{}) do struct |> cast(params, [:title, :description]) |> cast_attachments(params, [:file]) |> validate_required([:file]) |> case do %{valid?: false, changes: changes} = changeset when changes == %{} -> %{changeset | action: :ignore} changeset -> changeset end end def search(term) do results_set1 = Repo.all( from(ra in __MODULE__, where: ilike(ra.title, ^"#{term}%"), distinct: ra.id ) ) # results_set2 = # Repo.all( # from r in Resource, # where: ilike(r.title, ^"#{term}%"), # distinct: r.id # ) # results = Enum.concat(results_set1, results_set2) {:ok, results_set1} end def file_url({id, file}) do case Application.get_env(:ami_web, :env) do :prod -> "https://ami-aws-s3.s3.amazonaws.com/uploads/resource/file/#{file.file_name}" _ -> "https://ami-aws-staging.s3.amazonaws.com/uploads/resource/file/#{file.file_name}" end end def video_file_url({id, file}) do case Application.get_env(:ami_web, :env) do :prod -> "https://ami-aws-s3.s3.amazonaws.com/uploads/resource/file/#{file.file_name}" _ -> "https://ami-aws-staging.s3.amazonaws.com/uploads/resource/file/#{file.file_name}" end end end