@@ -73,13 +73,20 @@ defmodule Mobilizon.Admin.SettingMedia do
|
||||
|> unique_constraint(:group, name: :admin_settings_medias_group_name_index)
|
||||
end
|
||||
|
||||
# # In case the provided media is an existing one
|
||||
# In case the provided media is an existing one (identified by id)
|
||||
@spec put_media(Changeset.t(), map) :: Changeset.t()
|
||||
defp put_media(%Changeset{} = changeset, %{media: %{media_id: id}}) do
|
||||
%Media{} = media = Medias.get_media!(id)
|
||||
put_assoc(changeset, :media, media)
|
||||
end
|
||||
|
||||
# In case the provided media is an existing one (identified by uuid)
|
||||
@spec put_media(Changeset.t(), map) :: Changeset.t()
|
||||
defp put_media(%Changeset{} = changeset, %{media: %{media_uuid: uuid}}) do
|
||||
%Media{} = media = Medias.get_media_by_uuid!(uuid)
|
||||
put_assoc(changeset, :media, media)
|
||||
end
|
||||
|
||||
# In case it's a new media
|
||||
defp put_media(%Changeset{} = changeset, %{media: %{media: media}}) do
|
||||
{:ok, media} = upload_media(media)
|
||||
|
||||
@@ -35,6 +35,13 @@ defmodule Mobilizon.Medias do
|
||||
@spec get_media_by_uuid(String.t()) :: Media.t() | nil
|
||||
def get_media_by_uuid(uuid), do: Repo.get_by(Media, uuid: uuid)
|
||||
|
||||
@doc """
|
||||
Get a single media by uuid.
|
||||
Raises `Ecto.NoResultsError` if the media does not exist.
|
||||
"""
|
||||
@spec get_media_by_uuid!(String.t()) :: Media.t() | nil
|
||||
def get_media_by_uuid!(uuid), do: Repo.get_by!(Media, uuid: uuid)
|
||||
|
||||
@doc """
|
||||
Get a media by its URL.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user