Packages
monzo_client
1.0.0
A complete, production-grade Elixir client for the Monzo API: OAuth2, Accounts, Balance, Pots, Transactions, Feed Items, Attachments, Transaction Receipts, and Webhooks. Zero required dependencies.
Current section
Files
Jump to
Current section
Files
lib/monzo/internal/time.ex
defmodule Monzo.Internal.Time do
@moduledoc false
# Internal helper for parsing Monzo's RFC3339 timestamps, tolerating the
# empty string Monzo uses for `settled` on unsettled transactions.
@spec parse(String.t() | nil) :: DateTime.t() | nil
def parse(nil), do: nil
def parse(""), do: nil
def parse(value) when is_binary(value) do
case DateTime.from_iso8601(value) do
{:ok, datetime, _offset} -> datetime
{:error, _reason} -> nil
end
end
@spec format(DateTime.t() | nil) :: String.t()
def format(nil), do: ""
def format(%DateTime{} = datetime), do: DateTime.to_iso8601(datetime)
end