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