| 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 | |