defmodule CoreUtils.ParamsHelper do @spec to_integer(nil | binary(), integer()) :: integer() def to_integer(value, default \\ 0) def to_integer(nil, default), do: default def to_integer(str, default) do case Integer.parse(str) do {n, _} -> n _ -> default end end @spec to_float(String.t() | float() | integer(), a) :: float() | a when a: var def to_float(input, _default \\ :error) def to_float(input, _default) when is_float(input), do: input def to_float(input, default) do case Float.parse(to_string(input)) do {f, ""} -> f _ -> default end end defguard is_empty_list(value) when is_nil(value) or length(value) == 0 @spec diff_time(Time, Time, Timex.Comparable.granularity()) :: integer() def diff_time(time1, time2, units) do case Timex.diff(time1, time2, units) do {:error, _} -> 0 min when is_number(min) -> min _ -> 0 end end end