|
|
@ -4,6 +4,7 @@ defmodule LinkShortener.Links do
|
|
|
|
import Ecto.Query
|
|
|
|
import Ecto.Query
|
|
|
|
alias LinkShortener.Repo
|
|
|
|
alias LinkShortener.Repo
|
|
|
|
alias LinkShortener.Links
|
|
|
|
alias LinkShortener.Links
|
|
|
|
|
|
|
|
alias LinkShortener.Generators.SafeString
|
|
|
|
|
|
|
|
|
|
|
|
schema "links" do
|
|
|
|
schema "links" do
|
|
|
|
field :name, :string
|
|
|
|
field :name, :string
|
|
|
@ -23,6 +24,11 @@ defmodule LinkShortener.Links do
|
|
|
|
|
|
|
|
|
|
|
|
def new_one(), do: Links.changeset(%Links{})
|
|
|
|
def new_one(), do: Links.changeset(%Links{})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_one(attrs, length \\ 10, generator \\ SafeString) do
|
|
|
|
|
|
|
|
shorten = generator.generate(length)
|
|
|
|
|
|
|
|
insert_one(Map.put(attrs, :shorten, shorten))
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def insert_one(attrs) do
|
|
|
|
def insert_one(attrs) do
|
|
|
|
%Links{}
|
|
|
|
%Links{}
|
|
|
|
|> Links.changeset(attrs)
|
|
|
|
|> Links.changeset(attrs)
|
|
|
|