|
|
|
@ -1,6 +1,9 @@
|
|
|
|
|
defmodule LinkShortener.Links do
|
|
|
|
|
use Ecto.Schema
|
|
|
|
|
import Ecto.Changeset
|
|
|
|
|
import Ecto.Query
|
|
|
|
|
alias LinkShortener.Repo
|
|
|
|
|
alias LinkShortener.Links
|
|
|
|
|
|
|
|
|
|
schema "links" do
|
|
|
|
|
field :name, :string
|
|
|
|
@ -15,4 +18,48 @@ defmodule LinkShortener.Links do
|
|
|
|
|
|> cast(attrs, [:name, :url])
|
|
|
|
|
|> validate_required([:name, :url])
|
|
|
|
|
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
|
|
|
|
|