|
|
|
@ -4,13 +4,12 @@ defmodule LinkShortener.Links do
|
|
|
|
|
import Ecto.Query
|
|
|
|
|
alias LinkShortener.Repo
|
|
|
|
|
alias LinkShortener.Links.Link
|
|
|
|
|
alias LinkShortener.Generators.SafeString
|
|
|
|
|
alias LinkShortener.Generators.LinkWithRandomShorten, as: LinkGenerator
|
|
|
|
|
|
|
|
|
|
def new_one(), do: Link.changeset(%Link{}, %{})
|
|
|
|
|
|
|
|
|
|
def create_one(attrs, length \\ 10, generator \\ SafeString) do
|
|
|
|
|
shorten = generator.generate(length)
|
|
|
|
|
Map.put(attrs, :shorten, shorten)
|
|
|
|
|
def create_one(attrs, length \\ 10, generator \\ &LinkGenerator.generate_one/2) do
|
|
|
|
|
generator.(attrs, length)
|
|
|
|
|
|> insert_one()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|