analytics/lib/plausible/helpers/json.ex

16 lines
346 B
Elixir

defmodule Plausible.Helpers.JSON do
@moduledoc """
Common helpers for JSON handling
"""
def decode_or_fallback(raw) do
with raw when is_binary(raw) <- raw,
{:ok, %{} = decoded} <- Jason.decode(raw) do
decoded
else
already_a_map when is_map(already_a_map) -> already_a_map
_any -> %{}
end
end
end