Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e89a8ea5db | ||
|
|
feebbe4f8a |
@@ -44,3 +44,6 @@
|
|||||||
Add the CI/CD configuration.
|
Add the CI/CD configuration.
|
||||||
Add the test config.
|
Add the test config.
|
||||||
|
|
||||||
|
** 0.5.1 <2023-08-04 Fri>
|
||||||
|
Add a generator for Link with random shorten.
|
||||||
|
Update Links.create_one to use a function.
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
defmodule LinkShortener.Generators.LinkWithRandomShorten do
|
||||||
|
@moduledoc """
|
||||||
|
This module provides a generator for Link.
|
||||||
|
"""
|
||||||
|
|
||||||
|
alias LinkShortener.Generators.SafeString
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Generate a Link with random shorten with the length.
|
||||||
|
"""
|
||||||
|
def generate_one(attrs, length \\ 10, generator \\ &SafeString.generate/1) do
|
||||||
|
Map.put(attrs, :shorten, generator.(length))
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -4,13 +4,12 @@ defmodule LinkShortener.Links do
|
|||||||
import Ecto.Query
|
import Ecto.Query
|
||||||
alias LinkShortener.Repo
|
alias LinkShortener.Repo
|
||||||
alias LinkShortener.Links.Link
|
alias LinkShortener.Links.Link
|
||||||
alias LinkShortener.Generators.SafeString
|
alias LinkShortener.Generators.LinkWithRandomShorten, as: LinkGenerator
|
||||||
|
|
||||||
def new_one(), do: Link.changeset(%Link{}, %{})
|
def new_one(), do: Link.changeset(%Link{}, %{})
|
||||||
|
|
||||||
def create_one(attrs, length \\ 10, generator \\ SafeString) do
|
def create_one(attrs, length \\ 10, generator \\ &LinkGenerator.generate_one/2) do
|
||||||
shorten = generator.generate(length)
|
generator.(attrs, length)
|
||||||
Map.put(attrs, :shorten, shorten)
|
|
||||||
|> insert_one()
|
|> insert_one()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user