Add CRUD function for Links model.

main
KKlochko 2 years ago
parent 48bc82c98d
commit d7d217eeac

@ -1,6 +1,9 @@
defmodule LinkShortener.Links do defmodule LinkShortener.Links do
use Ecto.Schema use Ecto.Schema
import Ecto.Changeset import Ecto.Changeset
import Ecto.Query
alias LinkShortener.Repo
alias LinkShortener.Links
schema "links" do schema "links" do
field :name, :string field :name, :string
@ -15,4 +18,48 @@ defmodule LinkShortener.Links do
|> cast(attrs, [:name, :url]) |> cast(attrs, [:name, :url])
|> validate_required([:name, :url]) |> validate_required([:name, :url])
end end
def new_one(), do: Links.changeset(%Links{})
def insert_one(attrs) do
%Links{}
|> Links.changeset(attrs)
|> Repo.insert()
end
def edit_one(id) do
get_one(id)
|> Links.changeset()
end
def update_one(%Links{} = Links, changes) do
Links
|> Links.changeset(changes)
|> Repo.update()
end
def insert_one(attrs) do
%Links{}
|> Links.changeset(attrs)
|> Repo.insert()
end
def delete_one(%Links{} = Links), do: Repo.delete(Links)
def get_one_by(attrs) do
Repo.get_by(Links, attrs)
end
def get_one_by_name(name) do
get_one_by(%{name: name})
end
def get_one(id) do
Repo.get!(Links, id)
end
def get_all(opts) do
from(Links)
|> Repo.all()
end
end end

Loading…
Cancel
Save