Files
phoenix-ausblick/lib/outlook/translations.ex
2023-01-04 14:42:13 +01:00

108 lines
2.0 KiB
Elixir

defmodule Outlook.Translations do
@moduledoc """
The Translations context.
"""
import Ecto.Query, warn: false
alias Outlook.Repo
alias Outlook.Translations.Translation
@doc """
Returns the list of translations.
## Examples
iex> list_translations()
[%Translation{}, ...]
"""
def list_translations do
Repo.all(Translation)
end
@doc """
Gets a single translation.
Raises `Ecto.NoResultsError` if the Translation does not exist.
## Examples
iex> get_translation!(123)
%Translation{}
iex> get_translation!(456)
** (Ecto.NoResultsError)
"""
def get_translation!(id) do
Repo.get!(Translation, id)
|> Repo.preload([:article])
end
@doc """
Creates a translation.
## Examples
iex> create_translation(%{field: value})
{:ok, %Translation{}}
iex> create_translation(%{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def create_translation(attrs \\ %{}) do
%Translation{}
|> Translation.changeset(attrs)
|> Repo.insert()
end
@doc """
Updates a translation.
## Examples
iex> update_translation(translation, %{field: new_value})
{:ok, %Translation{}}
iex> update_translation(translation, %{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def update_translation(%Translation{} = translation, attrs) do
translation
|> Translation.changeset(attrs)
|> Repo.update()
end
@doc """
Deletes a translation.
## Examples
iex> delete_translation(translation)
{:ok, %Translation{}}
iex> delete_translation(translation)
{:error, %Ecto.Changeset{}}
"""
def delete_translation(%Translation{} = translation) do
Repo.delete(translation)
end
@doc """
Returns an `%Ecto.Changeset{}` for tracking translation changes.
## Examples
iex> change_translation(translation)
%Ecto.Changeset{data: %Translation{}}
"""
def change_translation(%Translation{} = translation, attrs \\ %{}) do
Translation.changeset(translation, attrs)
end
end