88use Illuminate \Support \Facades \Cache ;
99use Illuminate \Support \Facades \Log ;
1010use League \Fractal \Manager ;
11+ use App \Models \UsageLog ;
1112
1213class UsageLogController extends Controller
1314{
@@ -203,13 +204,38 @@ public function getForApplication(int $applicationId)
203204 /**
204205 * @return \Symfony\Component\HttpFoundation\Response
205206 */
206- public function getTotals ()
207+ public function getTotals (Request $ request )
207208 {
209+ $ this ->validate ($ request , [
210+ 'society ' => 'sometimes|string ' ,
211+ 'region ' => 'sometimes|int ' ,
212+ 'hazard ' => 'sometimes|string ' ,
213+ 'date ' => 'sometimes|date ' ,
214+ 'language ' => 'sometimes|string ' ,
215+ ]);
208216 try {
209217 // Cache to be enabled in production
210- //$totals = Cache::remember('usage.totals', 3600 * 24, function () {
218+ $ usageLog = new UsageLog ;
219+ $ query = $ usageLog ->query ();
220+
221+ if (isset ($ request ->society )) {
222+ $ query ->where ('endpoint ' , 'v1/org/ ' .$ request ->society .'/whatnow ' );
223+ }
224+ if (isset ($ request ->region )) {
225+ $ query ->where ('region ' , $ request ->region );
226+ }
227+ if (isset ($ request ->hazard )) {
228+ $ query ->where ('event_type ' , 'like ' , '% ' . $ request ->hazard . '% ' );
229+ }
230+ if (isset ($ request ->date )) {
231+ $ query ->whereDate ('timestamp ' , $ request ->date );
232+ }
233+ if (isset ($ request ->language )) {
234+ $ query ->where ('language ' , $ request ->language );
235+ }
236+ $ usageLogs = $ query ->get ();
237+
211238 $ applications = $ this ->applicationRepo ->all ();
212- $ usageLogs = $ this ->usageLogRepo ->all ();
213239
214240 // Calculate total estimated users
215241 $ totalEstimatedUsers = $ applications ->map (function ($ application ) {
@@ -221,7 +247,6 @@ public function getTotals()
221247 'estimatedUsers ' => $ totalEstimatedUsers ,
222248 'hits ' => count ($ usageLogs ),
223249 ];
224- //});
225250 } catch (\Exception $ e ) {
226251 Log::error ('Could not get Usage Log totals ' , ['message ' => $ e ->getMessage ()]);
227252
0 commit comments