����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 18.219.115.102 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/public_html/common/Admin/Analytics/ |
Upload File : |
<?php namespace Common\Admin\Analytics; use Cache; use Carbon\Carbon; use Common\Core\BaseController; use Common\Admin\Analytics\Actions\GetAnalyticsData; use Common\Admin\Analytics\Actions\GetAnalyticsHeaderDataAction; use Exception; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class AnalyticsController extends BaseController { /** * @var GetAnalyticsData */ private $getDataAction; /** * @var GetAnalyticsHeaderDataAction */ private $getHeaderDataAction; /** * @var Request */ private $request; const DEFAULT_CHANNEL = 'default'; /** * @param GetAnalyticsData $getDataAction * @param GetAnalyticsHeaderDataAction $getHeaderDataAction * @param Request $request */ public function __construct( Request $request, GetAnalyticsData $getDataAction, GetAnalyticsHeaderDataAction $getHeaderDataAction ) { $this->getDataAction = $getDataAction; $this->getHeaderDataAction = $getHeaderDataAction; $this->request = $request; } /** * @return JsonResponse */ public function stats() { $this->authorize('index', 'ReportPolicy'); $channel = $this->request->get('channel') ?: self::DEFAULT_CHANNEL; if ($channel === 'clicks') { // TODO: temp override of BeLink, refactor get data action and move caching into there so each app can control caching $mainData = $this->getDataAction->execute($channel); } else { $mainData = $data = Cache::remember("analytics.data.main.$channel", Carbon::now()->addDay(), function() use($channel) { return $this->getDataAction->execute($channel); }) ?: []; } $headerData = $data = Cache::remember("analytics.data.header.$channel", Carbon::now()->addDay(), function() use($channel) { return $this->getHeaderDataAction->execute($channel); }); return $this->success([ 'mainData' => $mainData, 'headerData' => $headerData, ]); } }