| defmodule PlausibleWeb.Controllers.API.Revenue do | |
| @moduledoc """ | |
| Revenue specific functions for the API scope | |
| """ | |
| @revenue_metrics Plausible.Stats.Goal.Revenue.revenue_metrics() | |
| def format_revenue_metric({metric, value}) do | |
| if metric in @revenue_metrics do | |
| {metric, format_money(value)} | |
| else | |
| {metric, value} | |
| end | |
| end | |
| def format_money(value) do | |
| case value do | |
| %Money{} -> | |
| %{ | |
| short: Money.to_string!(value, format: :short, fractional_digits: 1), | |
| long: Money.to_string!(value) | |
| } | |
| _any -> | |
| value | |
| end | |
| end | |
| end | |