@@ -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.
|
||||
"""
|
||||
|
||||
@@ -24,6 +24,11 @@ defmodule Mobilizon.MediaTest do
|
||||
assert Medias.get_media!(media.id).id == media.id
|
||||
end
|
||||
|
||||
test "get_media_by_uuid!/1 returns the media with given uuid" do
|
||||
media = insert(:media)
|
||||
assert Medias.get_media_by_uuid!(media.uuid).uuid == media.uuid
|
||||
end
|
||||
|
||||
test "create_media/1 with valid data creates a media" do
|
||||
assert {:ok, %Media{} = media} =
|
||||
Medias.create_media(Map.put(@valid_attrs, :actor_id, insert(:actor).id))
|
||||
|
||||
Reference in New Issue
Block a user