philomena/lib/philomena/source_changes.ex
2019-11-24 13:36:21 -05:00

91 lines
1.9 KiB
Elixir

defmodule Philomena.SourceChanges do
@moduledoc """
The SourceChanges context.
"""
import Ecto.Query, warn: false
alias Philomena.Repo
alias Philomena.SourceChanges.SourceChange
@doc """
Gets a single source_change.
Raises `Ecto.NoResultsError` if the Source change does not exist.
## Examples
iex> get_source_change!(123)
%SourceChange{}
iex> get_source_change!(456)
** (Ecto.NoResultsError)
"""
def get_source_change!(id), do: Repo.get!(SourceChange, id)
@doc """
Creates a source_change.
## Examples
iex> create_source_change(%{field: value})
{:ok, %SourceChange{}}
iex> create_source_change(%{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def create_source_change(attrs \\ %{}) do
%SourceChange{}
|> SourceChange.changeset(attrs)
|> Repo.insert()
end
@doc """
Updates a source_change.
## Examples
iex> update_source_change(source_change, %{field: new_value})
{:ok, %SourceChange{}}
iex> update_source_change(source_change, %{field: bad_value})
{:error, %Ecto.Changeset{}}
"""
def update_source_change(%SourceChange{} = source_change, attrs) do
source_change
|> SourceChange.changeset(attrs)
|> Repo.update()
end
@doc """
Deletes a SourceChange.
## Examples
iex> delete_source_change(source_change)
{:ok, %SourceChange{}}
iex> delete_source_change(source_change)
{:error, %Ecto.Changeset{}}
"""
def delete_source_change(%SourceChange{} = source_change) do
Repo.delete(source_change)
end
@doc """
Returns an `%Ecto.Changeset{}` for tracking source_change changes.
## Examples
iex> change_source_change(source_change)
%Ecto.Changeset{source: %SourceChange{}}
"""
def change_source_change(%SourceChange{} = source_change) do
SourceChange.changeset(source_change, %{})
end
end