Files
labelmaker/lib/labelmaker_web/tools.ex
Gavin McDonald 92f469c982 text outlines
2025-05-06 15:39:48 -04:00

24 lines
662 B
Elixir

defmodule LabelmakerWeb.Tools do
alias LabelmakerWeb.Constants
def process_parameters(parameters) do
parameters =
parameters
|> Map.take(Constants.permitted_keys())
|> Map.new(fn {k, v} -> {String.to_atom(k), v} end)
|> Enum.filter(fn {k, v} ->
case k do
:color -> v in Constants.colors()
:font -> v in Constants.fonts()
:label -> String.length(v) <= Constants.max_label_length()
:outline -> v in Constants.outlines()
:size -> v in Constants.sizes()
_ -> true
end
end)
|> Map.new()
Map.merge(Constants.defaults(), parameters)
end
end