diff --git a/app/Jobs/LoadPostmarkStats.php b/app/Jobs/LoadPostmarkStats.php index df101c4514e8..f5a508e577b8 100644 --- a/app/Jobs/LoadPostmarkStats.php +++ b/app/Jobs/LoadPostmarkStats.php @@ -27,6 +27,10 @@ class LoadPostmarkStats extends Job */ public function handle() { + if (! auth()->user()->hasPermission('view_all')) { + return $this->response; + } + $this->loadOverallStats(); $this->loadSentStats(); $this->loadPlatformStats(); @@ -50,9 +54,9 @@ class LoadPostmarkStats extends Job $records = []; if ($eventType == 'sent') { - $response = $this->postmark->getOutboundSendStatistics(null, request()->start_date, request()->end_date); + $response = $this->postmark->getOutboundSendStatistics($this->account->account_key, request()->start_date, request()->end_date); } else { - $response = $this->postmark->getOutboundOpenStatistics(null, request()->start_date, request()->end_date); + $response = $this->postmark->getOutboundOpenStatistics($this->account->account_key, request()->start_date, request()->end_date); } foreach ($response->days as $key => $val) { @@ -95,17 +99,18 @@ class LoadPostmarkStats extends Job private function loadSentStats() { $account = $this->account; - $data = $this->postmark->getOutboundOverviewStatistics(null, request()->start_date, request()->end_date); + $data = $this->postmark->getOutboundOverviewStatistics($this->account->account_key, request()->start_date, request()->end_date); + $percent = $data->sent ? ($data->uniqueopens / $data->sent * 100) : 0; $this->response->totals = [ 'sent' => $account->formatNumber($data->sent), - 'opened' => sprintf('%s | %s%%', $account->formatNumber($data->uniqueopens), $account->formatNumber($data->uniqueopens / $data->sent * 100)), + 'opened' => sprintf('%s | %s%%', $account->formatNumber($data->uniqueopens), $account->formatNumber($percent)), 'bounced' => sprintf('%s | %s%%', $account->formatNumber($data->bounced), $account->formatNumber($data->bouncerate, 3)), //'spam' => sprintf('%s | %s%%', $account->formatNumber($data->spamcomplaints), $account->formatNumber($data->spamcomplaintsrate, 3)) ]; } private function loadPlatformStats() { - $data = $this->postmark->getOutboundPlatformStatistics(null, request()->start_date, request()->end_date); + $data = $this->postmark->getOutboundPlatformStatistics($this->account->account_key, request()->start_date, request()->end_date); $account = $this->account; $str = ''; $total = 0; @@ -113,14 +118,15 @@ class LoadPostmarkStats extends Job $total = $data['desktop'] + $data['mobile'] + $data['webmail']; foreach (['mobile', 'desktop', 'webmail'] as $platform) { - $str .= sprintf('