Compare commits

..
2 Commits
Author SHA1 Message Date
KKlochko e89a8ea5db Update Links.create_one to use a function.
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build was killed
2023-08-04 21:10:36 +03:00
KKlochko feebbe4f8a Add a generator for Link with random shorten. 2023-08-04 21:10:08 +03:00
3 changed files with 20 additions and 4 deletions
+3
View File
@@ -44,3 +44,6 @@
Add the CI/CD configuration.
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
+3 -4
View File
@@ -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