@@ -114,23 +114,7 @@ defmodule PlausibleWeb.Api.StatsController do
114
114
present_index = present_index_for ( site , query , labels )
115
115
full_intervals = build_full_intervals ( query , labels )
116
116
117
- comparison_result =
118
- case params [ "comparison" ] do
119
- "previous_period" ->
120
- comparison_query = Query . shift_back ( query , site )
121
- Stats . timeseries ( site , comparison_query , [ selected_metric ] )
122
-
123
- "last_year" ->
124
- start_date = Date . add ( query . date_range . first , - 365 )
125
- end_date = Date . add ( query . date_range . last , - 365 )
126
- range = Date . range ( start_date , end_date )
127
-
128
- comparison_query = % Query { query | date_range: range }
129
- Stats . timeseries ( site , comparison_query , [ selected_metric ] )
130
-
131
- _any ->
132
- nil
133
- end
117
+ comparison_result = query_comparison ( params [ "comparison" ] , site , query , selected_metric )
134
118
135
119
json ( conn , % {
136
120
plot: plot_timeseries ( timeseries_result , selected_metric ) ,
@@ -182,6 +166,25 @@ defmodule PlausibleWeb.Api.StatsController do
182
166
nil
183
167
end
184
168
169
+ defp query_comparison ( comparison_mode , site , query , selected_metric ) do
170
+ case comparison_mode do
171
+ "previous_period" ->
172
+ comparison_query = Query . shift_back ( query , site )
173
+ Stats . timeseries ( site , comparison_query , [ selected_metric ] )
174
+
175
+ "last_year" ->
176
+ start_date = Date . add ( query . date_range . first , - 365 )
177
+ end_date = Date . add ( query . date_range . last , - 365 )
178
+ range = Date . range ( start_date , end_date )
179
+
180
+ comparison_query = % Query { query | date_range: range }
181
+ Stats . timeseries ( site , comparison_query , [ selected_metric ] )
182
+
183
+ _any ->
184
+ nil
185
+ end
186
+ end
187
+
185
188
def top_stats ( conn , params ) do
186
189
site = conn . assigns [ :site ]
187
190
0 commit comments