From be508ec88a46fa27fb04408d09a2d544ddabf6d5 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Fri, 7 Jul 2023 16:52:52 +0300 Subject: [PATCH] Add a generator of a SafeString. --- CHANGELOG.org | 2 ++ lib/link_shortener/generators/safe_string.ex | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 lib/link_shortener/generators/safe_string.ex diff --git a/CHANGELOG.org b/CHANGELOG.org index 6b522e4..517d2a7 100644 --- a/CHANGELOG.org +++ b/CHANGELOG.org @@ -7,4 +7,6 @@ Updated the Links model to have a unique shorten. ** 0.1.2 <2023-07-06 Thu> 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. diff --git a/lib/link_shortener/generators/safe_string.ex b/lib/link_shortener/generators/safe_string.ex new file mode 100644 index 0000000..ca63568 --- /dev/null +++ b/lib/link_shortener/generators/safe_string.ex @@ -0,0 +1,15 @@ +defmodule LinkShortener.Generators.SafeString do + @moduledoc """ + This module provides a generator. + """ + + @doc """ + Generate a random string with the length. + The string can be used as part of a url. + """ + def generate(length) do + :crypto.strong_rand_bytes(length) + |> Base.url_encode64() + |> binary_part(0, length) + end +end