Skip to content

Commit 43ef172

Browse files
committed
Respond with revenue currency in the API
1 parent c847d16 commit 43ef172

File tree

4 files changed

+114
-21
lines changed

4 files changed

+114
-21
lines changed

extra/lib/plausible/stats/goal/revenue.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ defmodule Plausible.Stats.Goal.Revenue do
5252
%{
5353
short: Money.to_string!(money, format: :short, fractional_digits: 1),
5454
long: Money.to_string!(money),
55-
value: Decimal.to_float(money.amount)
55+
value: Decimal.to_float(money.amount),
56+
currency: currency
5657
}
5758
else
5859
value

test/plausible_web/controllers/api/stats_controller/conversions_test.exs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,12 +307,14 @@ defmodule PlausibleWeb.Api.StatsController.ConversionsTest do
307307
"average_revenue" => %{
308308
"short" => "€166.7M",
309309
"long" => "€166,733,566.75",
310-
"value" => 166_733_566.748
310+
"value" => 166_733_566.748,
311+
"currency" => "EUR"
311312
},
312313
"total_revenue" => %{
313314
"short" => "€500.2M",
314315
"long" => "€500,200,700.25",
315-
"value" => 500_200_700.246
316+
"value" => 500_200_700.246,
317+
"currency" => "EUR"
316318
}
317319
}
318320
]
@@ -391,11 +393,21 @@ defmodule PlausibleWeb.Api.StatsController.ConversionsTest do
391393

392394
assert [
393395
%{
394-
"average_revenue" => %{"long" => "€10.00", "short" => "€10.0", "value" => 10.0},
396+
"average_revenue" => %{
397+
"long" => "€10.00",
398+
"short" => "€10.0",
399+
"value" => 10.0,
400+
"currency" => "EUR"
401+
},
395402
"conversion_rate" => 16.7,
396403
"name" => "Payment",
397404
"events" => 1,
398-
"total_revenue" => %{"long" => "€10.00", "short" => "€10.0", "value" => 10.0},
405+
"total_revenue" => %{
406+
"long" => "€10.00",
407+
"short" => "€10.0",
408+
"value" => 10.0,
409+
"currency" => "EUR"
410+
},
399411
"visitors" => 1
400412
},
401413
%{

test/plausible_web/controllers/api/stats_controller/custom_prop_breakdown_test.exs

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -810,16 +810,36 @@ defmodule PlausibleWeb.Api.StatsController.CustomPropBreakdownTest do
810810
"name" => "true",
811811
"events" => 2,
812812
"conversion_rate" => 66.7,
813-
"total_revenue" => %{"long" => "€112.00", "short" => "€112.0", "value" => 112.00},
814-
"average_revenue" => %{"long" => "€56.00", "short" => "€56.0", "value" => 56.00}
813+
"total_revenue" => %{
814+
"long" => "€112.00",
815+
"short" => "€112.0",
816+
"value" => 112.00,
817+
"currency" => "EUR"
818+
},
819+
"average_revenue" => %{
820+
"long" => "€56.00",
821+
"short" => "€56.0",
822+
"value" => 56.00,
823+
"currency" => "EUR"
824+
}
815825
},
816826
%{
817827
"visitors" => 1,
818828
"name" => "false",
819829
"events" => 1,
820830
"conversion_rate" => 33.3,
821-
"total_revenue" => %{"long" => "€8.00", "short" => "€8.0", "value" => 8.00},
822-
"average_revenue" => %{"long" => "€8.00", "short" => "€8.0", "value" => 8.00}
831+
"total_revenue" => %{
832+
"long" => "€8.00",
833+
"short" => "€8.0",
834+
"value" => 8.00,
835+
"currency" => "EUR"
836+
},
837+
"average_revenue" => %{
838+
"long" => "€8.00",
839+
"short" => "€8.0",
840+
"value" => 8.00,
841+
"currency" => "EUR"
842+
}
823843
}
824844
]
825845
end
@@ -874,16 +894,36 @@ defmodule PlausibleWeb.Api.StatsController.CustomPropBreakdownTest do
874894
"name" => "true",
875895
"events" => 2,
876896
"conversion_rate" => 66.7,
877-
"total_revenue" => %{"long" => "€80.00", "short" => "€80.0", "value" => 80.0},
878-
"average_revenue" => %{"long" => "€40.00", "short" => "€40.0", "value" => 40.0}
897+
"total_revenue" => %{
898+
"long" => "€80.00",
899+
"short" => "€80.0",
900+
"value" => 80.0,
901+
"currency" => "EUR"
902+
},
903+
"average_revenue" => %{
904+
"long" => "€40.00",
905+
"short" => "€40.0",
906+
"value" => 40.0,
907+
"currency" => "EUR"
908+
}
879909
},
880910
%{
881911
"visitors" => 1,
882912
"name" => "false",
883913
"events" => 1,
884914
"conversion_rate" => 33.3,
885-
"total_revenue" => %{"long" => "€10.00", "short" => "€10.0", "value" => 10.0},
886-
"average_revenue" => %{"long" => "€10.00", "short" => "€10.0", "value" => 10.0}
915+
"total_revenue" => %{
916+
"long" => "€10.00",
917+
"short" => "€10.0",
918+
"value" => 10.0,
919+
"currency" => "EUR"
920+
},
921+
"average_revenue" => %{
922+
"long" => "€10.00",
923+
"short" => "€10.0",
924+
"value" => 10.0,
925+
"currency" => "EUR"
926+
}
887927
}
888928
]
889929
end

test/plausible_web/controllers/api/stats_controller/top_stats_test.exs

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1414,13 +1414,23 @@ defmodule PlausibleWeb.Api.StatsController.TopStatsTest do
14141414

14151415
assert %{
14161416
"name" => "Average revenue",
1417-
"value" => %{"long" => "$1,659.50", "short" => "$1.7K", "value" => 1659.5},
1417+
"value" => %{
1418+
"long" => "$1,659.50",
1419+
"short" => "$1.7K",
1420+
"value" => 1659.5,
1421+
"currency" => "USD"
1422+
},
14181423
"graph_metric" => "average_revenue"
14191424
} in top_stats
14201425

14211426
assert %{
14221427
"name" => "Total revenue",
1423-
"value" => %{"long" => "$3,319.00", "short" => "$3.3K", "value" => 3319.0},
1428+
"value" => %{
1429+
"long" => "$3,319.00",
1430+
"short" => "$3.3K",
1431+
"value" => 3319.0,
1432+
"currency" => "USD"
1433+
},
14241434
"graph_metric" => "total_revenue"
14251435
} in top_stats
14261436
end
@@ -1473,13 +1483,23 @@ defmodule PlausibleWeb.Api.StatsController.TopStatsTest do
14731483

14741484
assert %{
14751485
"name" => "Average revenue",
1476-
"value" => %{"long" => "$1,659.50", "short" => "$1.7K", "value" => 1659.5},
1486+
"value" => %{
1487+
"long" => "$1,659.50",
1488+
"short" => "$1.7K",
1489+
"value" => 1659.5,
1490+
"currency" => "USD"
1491+
},
14771492
"graph_metric" => "average_revenue"
14781493
} in top_stats
14791494

14801495
assert %{
14811496
"name" => "Total revenue",
1482-
"value" => %{"long" => "$6,638.00", "short" => "$6.6K", "value" => 6638.0},
1497+
"value" => %{
1498+
"long" => "$6,638.00",
1499+
"short" => "$6.6K",
1500+
"value" => 6638.0,
1501+
"currency" => "USD"
1502+
},
14831503
"graph_metric" => "total_revenue"
14841504
} in top_stats
14851505
end
@@ -1549,13 +1569,23 @@ defmodule PlausibleWeb.Api.StatsController.TopStatsTest do
15491569

15501570
assert %{
15511571
"name" => "Average revenue",
1552-
"value" => %{"long" => "$1,000.00", "short" => "$1.0K", "value" => 1000.0},
1572+
"value" => %{
1573+
"long" => "$1,000.00",
1574+
"short" => "$1.0K",
1575+
"value" => 1000.0,
1576+
"currency" => "USD"
1577+
},
15531578
"graph_metric" => "average_revenue"
15541579
} in top_stats
15551580

15561581
assert %{
15571582
"name" => "Total revenue",
1558-
"value" => %{"long" => "$2,000.00", "short" => "$2.0K", "value" => 2000.0},
1583+
"value" => %{
1584+
"long" => "$2,000.00",
1585+
"short" => "$2.0K",
1586+
"value" => 2000.0,
1587+
"currency" => "USD"
1588+
},
15591589
"graph_metric" => "total_revenue"
15601590
} in top_stats
15611591
end
@@ -1571,13 +1601,23 @@ defmodule PlausibleWeb.Api.StatsController.TopStatsTest do
15711601

15721602
assert %{
15731603
"name" => "Average revenue",
1574-
"value" => %{"long" => "$0.00", "short" => "$0.0", "value" => 0.0},
1604+
"value" => %{
1605+
"long" => "$0.00",
1606+
"short" => "$0.0",
1607+
"value" => 0.0,
1608+
"currency" => "USD"
1609+
},
15751610
"graph_metric" => "average_revenue"
15761611
} in top_stats
15771612

15781613
assert %{
15791614
"name" => "Total revenue",
1580-
"value" => %{"long" => "$0.00", "short" => "$0.0", "value" => 0.0},
1615+
"value" => %{
1616+
"long" => "$0.00",
1617+
"short" => "$0.0",
1618+
"value" => 0.0,
1619+
"currency" => "USD"
1620+
},
15811621
"graph_metric" => "total_revenue"
15821622
} in top_stats
15831623
end

0 commit comments

Comments
 (0)