@@ -38,8 +38,8 @@ defmodule Plausible.Stats.Filters.QueryParser do
3838 { :ok , order_by } <- parse_order_by ( Map . get ( params , "order_by" ) ) ,
3939 { :ok , include } <- parse_include ( site , Map . get ( params , "include" , % { } ) ) ,
4040 { :ok , pagination } <- parse_pagination ( Map . get ( params , "pagination" , % { } ) ) ,
41- { preloaded_goals , revenue_currencies } <-
42- preload_needed_goals ( site , metrics , filters , dimensions ) ,
41+ { preloaded_goals , revenue_warning , revenue_currencies } <-
42+ preload_goals_and_revenue ( site , metrics , filters , dimensions ) ,
4343 query = % {
4444 metrics: metrics ,
4545 filters: filters ,
@@ -50,6 +50,7 @@ defmodule Plausible.Stats.Filters.QueryParser do
5050 include: include ,
5151 pagination: pagination ,
5252 preloaded_goals: preloaded_goals ,
53+ revenue_warning: revenue_warning ,
5354 revenue_currencies: revenue_currencies
5455 } ,
5556 :ok <- validate_order_by ( query ) ,
@@ -422,20 +423,24 @@ defmodule Plausible.Stats.Filters.QueryParser do
422423 end
423424 end
424425
425- def preload_needed_goals ( site , metrics , filters , dimensions ) do
426+ def preload_goals_and_revenue ( site , metrics , filters , dimensions ) do
426427 goal_filters? =
427428 Enum . any? ( filters , fn [ _ , filter_key | _rest ] -> filter_key == "event:goal" end )
428429
429- if goal_filters? or Enum . member? ( dimensions , "event:goal" ) do
430- goals = Plausible.Goals.Filters . preload_needed_goals ( site , filters )
430+ goals =
431+ if goal_filters? or Enum . member? ( dimensions , "event:goal" ) do
432+ Plausible.Goals.Filters . preload_needed_goals ( site , filters )
433+ else
434+ [ ]
435+ end
431436
432- {
433- goals ,
434- preload_revenue_currencies ( site , goals , metrics , dimensions )
435- }
436- else
437- { [ ] , % { } }
438- end
437+ { revenue_warning , revenue_currencies } = preload_revenue ( site , goals , metrics , dimensions )
438+
439+ {
440+ goals ,
441+ revenue_warning ,
442+ revenue_currencies
443+ }
439444 end
440445
441446 @ only_toplevel [ "event:goal" , "event:hostname" ]
@@ -485,8 +490,9 @@ defmodule Plausible.Stats.Filters.QueryParser do
485490 on_ee do
486491 alias Plausible.Stats.Goal.Revenue
487492
488- defdelegate preload_revenue_currencies ( site , preloaded_goals , metrics , dimensions ) ,
489- to: Plausible.Stats.Goal.Revenue
493+ def preload_revenue ( site , preloaded_goals , metrics , dimensions ) do
494+ Revenue . preload ( site , preloaded_goals , metrics , dimensions )
495+ end
490496
491497 defp validate_revenue_metrics_access ( site , query ) do
492498 if Revenue . requested? ( query . metrics ) and not Revenue . available? ( site ) do
@@ -496,7 +502,7 @@ defmodule Plausible.Stats.Filters.QueryParser do
496502 end
497503 end
498504 else
499- defp preload_revenue_currencies ( _site , _preloaded_goals , _metrics , _dimensions ) , do: % { }
505+ defp preload_revenue ( _site , _preloaded_goals , _metrics , _dimensions ) , do: { nil , % { } }
500506
501507 defp validate_revenue_metrics_access ( _site , _query ) , do: :ok
502508 end
0 commit comments