Soundboard.Sounds (soundboard v1.7.0)

Sound domain context.

Summary

Functions

create_error_message(error)

@spec create_error_message(Ecto.Changeset.t() | String.t() | term()) :: String.t()

create_sound(request)

@spec create_sound(Soundboard.Sounds.Uploads.CreateRequest.t()) ::
  {:ok, Soundboard.Sound.t()} | {:error, Ecto.Changeset.t()}

delete_sound(sound, user_id)

@spec delete_sound(Soundboard.Sound.t(), integer()) :: :ok | {:error, term()}

fetch_filename_extension(sound_id)

@spec fetch_filename_extension(term()) :: {:ok, String.t()} | :error

fetch_sound_id(filename)

@spec fetch_sound_id(String.t()) :: {:ok, integer()} | :error

filename_conflicts_across_extensions?(base_name, extensions)

@spec filename_conflicts_across_extensions?(String.t(), [String.t()]) :: boolean()

filename_taken?(filename)

@spec filename_taken?(String.t()) :: boolean()

filename_taken_excluding?(filename, sound_id)

@spec filename_taken_excluding?(String.t(), integer() | String.t()) :: boolean()

get_recent_uploads(opts \\ [])

@spec get_recent_uploads(keyword()) :: [{String.t(), String.t(), NaiveDateTime.t()}]

get_sound!(id)

@spec get_sound!(term()) :: Soundboard.Sound.t()

get_user_join_sound(user_id)

@spec get_user_join_sound(integer()) :: String.t() | nil

get_user_join_sound_by_discord_id(discord_id)

@spec get_user_join_sound_by_discord_id(term()) :: String.t() | nil

get_user_leave_sound(user_id)

@spec get_user_leave_sound(integer()) :: String.t() | nil

get_user_leave_sound_by_discord_id(discord_id)

@spec get_user_leave_sound_by_discord_id(term()) :: String.t() | nil

get_user_sound_preferences_by_discord_id(discord_id)

@spec get_user_sound_preferences_by_discord_id(term()) :: map() | nil

ids_by_filename(filenames)

@spec ids_by_filename([String.t()]) :: %{optional(String.t()) => integer()}

list_detailed()

@spec list_detailed() :: [Soundboard.Sound.t()]

list_files()

@spec list_files() :: [Soundboard.Sound.t()]

new_create_request(user, attrs)

@spec new_create_request(Soundboard.Accounts.User.t() | nil, map()) ::
  Soundboard.Sounds.Uploads.CreateRequest.t()

put_request_upload(request, upload)

@spec put_request_upload(Soundboard.Sounds.Uploads.CreateRequest.t(), map() | nil) ::
  Soundboard.Sounds.Uploads.CreateRequest.t()

update_sound(sound, attrs)

@spec update_sound(Soundboard.Sound.t(), map()) ::
  {:ok, Soundboard.Sound.t()} | {:error, Ecto.Changeset.t()}

update_sound(sound, user_id, params)

@spec update_sound(Soundboard.Sound.t(), integer(), map()) ::
  {:ok, Soundboard.Sound.t()} | {:error, term()}

validate_create(request)

@spec validate_create(Soundboard.Sounds.Uploads.CreateRequest.t()) ::
  {:ok, map()} | {:error, Ecto.Changeset.t()}