chiya/lib/chiya/site.ex
2023-03-13 05:59:49 +01:00

63 lines
1.2 KiB
Elixir

defmodule Chiya.Site do
@moduledoc """
The Site context.
"""
import Ecto.Query, warn: false
alias Chiya.Repo
alias Chiya.Site.Setting
@doc """
Gets a setting row, containing the settings.
"""
def get_settings(), do: Repo.one(Setting)
@doc """
Creates a setting row.
## Examples
iex> create_setting(%{field: value})
{:ok, %Setting{}}
iex> create_setting(%{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def create_setting(attrs \\ %{}) do
%Setting{}
|> Setting.changeset(attrs)
|> Repo.insert()
end
@doc """
Updates the setting row.
## Examples
iex> update_setting(setting, %{field: new_value})
{:ok, %Setting{}}
iex> update_setting(setting, %{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def update_setting(%Setting{} = setting, attrs) do
setting
|> Setting.changeset(attrs)
|> Repo.update()
end
@doc """
Returns an `%Ecto.Changeset{}` for tracking setting changes.
## Examples
iex> change_setting(setting)
%Ecto.Changeset{data: %Setting{}}
"""
def change_setting(%Setting{} = setting, attrs \\ %{}) do
Setting.changeset(setting, attrs)
end
end