lib/utils.ex
defmodule BitpandaApi.Utils do
@moduledoc """
Bitpanda API utilities
"""
alias Decimal
@doc """
A brute decimal parser.
## Examples
iex> decimal!("30.56")
{:stocazzo}
"""
@spec decimal!(String.t()) :: Decimal.t()
def decimal!(value) do
with {decimal, _} <- Decimal.parse(value) do
decimal
end
end
@doc """
Parse IS08601 datetime brutally
## Examples
iex> datetime!("2022-10-15T03:23:22Z")
~U[2022-10-15T03:23:22Z]
"""
@spec datetime!(String.t()) :: DateTime.t()
def datetime!(value) do
with {:ok, datetime, _} <- DateTime.from_iso8601(value) do
datetime
end
end
end