SmsUp.Pin.Generator (sms_up v1.4.1)

View Source

This module deals with generating random pin codes.

Summary

Functions

Generate a random pin number of the given length (min: 1, max: 10).

Functions

generate_pin(size \\ 6)

@spec generate_pin(integer()) :: {:error, String.t()} | {:ok, String.t()}

Generate a random pin number of the given length (min: 1, max: 10).

Returns a pin of the given length as a string.

Examples (:rand.seed is used here for doctest)

iex> :rand.seed(:exsss, {10, 20, 30})
iex> SmsUp.Pin.Generator.generate_pin()
{:ok, "278950"}

iex> :rand.seed(:exsss, {10, 20, 30})
iex> SmsUp.Pin.Generator.generate_pin(4)
{:ok, "4819"}

iex> :rand.seed(:exsss, {10, 20, 30})
iex> SmsUp.Pin.Generator.generate_pin(100)
{:ok, "8317504629"}

iex> SmsUp.Pin.Generator.generate_pin(0)
{:error, "invalid size of 0, please use a positive integer"}

iex> SmsUp.Pin.Generator.generate_pin(-6)
{:error, "invalid size of -6, please use a positive integer"}