From 47ea2bc1da0703bdf60eaa189d07af1342e3c941 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Fri, 7 Jul 2023 16:58:52 +0300 Subject: [PATCH] Add a method to create an Link using a generator. --- CHANGELOG.org | 2 ++ lib/link_shortener/links.ex | 6 ++++++ mix.exs | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.org b/CHANGELOG.org index 517d2a7..76bfa7b 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -9,4 +9,6 @@ Renamed the Links.get_one_by_name to get_one_by_shorten. ** 0.2.0 <2023-07-07 Fri> Added a generator of a SafeString. +** 0.2.1 <2023-07-07 Fri> + Added a method to create an Link using a generator. diff --git a/lib/link_shortener/links.ex b/lib/link_shortener/links.ex index 89fb194..34626d1 100644 --- a/lib/link_shortener/links.ex +++ b/lib/link_shortener/links.ex @@ -4,6 +4,7 @@ defmodule LinkShortener.Links do import Ecto.Query alias LinkShortener.Repo alias LinkShortener.Links + alias LinkShortener.Generators.SafeString schema "links" do field :name, :string @@ -23,6 +24,11 @@ defmodule LinkShortener.Links do 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 %Links{} |> Links.changeset(attrs) diff --git a/mix.exs b/mix.exs index 24c4dc1..ee04042 100644 --- a/mix.exs +++ b/mix.exs @@ -4,7 +4,7 @@ defmodule LinkShortener.MixProject do def project do [ app: :link_shortener, - version: "0.1.2", + version: "0.2.1", elixir: "~> 1.12", elixirc_paths: elixirc_paths(Mix.env()), compilers: [] ++ Mix.compilers(),