Skip to content

Instantly share code, notes, and snippets.

Created February 16, 2016 15:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/7c3c6769414456a34f92 to your computer and use it in GitHub Desktop.
Save anonymous/7c3c6769414456a34f92 to your computer and use it in GitHub Desktop.
protected function loadCounters(Collection $mails)
{
$mails->load([
'eTrackings' => function ($query) {
return $query->select(['mailer_id'])
->selectRaw('SUM(`clicks`) AS `clicks`')
->groupBy('mailer_id');
},
'ePixels' => function ($query) {
return $query->select(['mailer_id'])
->selectRaw('COUNT(`views`) AS `views`')
->selectRaw('SUM(`views`) AS `sum_views`')
->groupBy('mailer_id');
},
'eUnsubscribers' => function ($query) {
return $query->select(['mail_id'])
->selectRaw('COUNT(*) AS `count`')
->groupBy('mail_id');
}
]);
$mails->transform(function (MailerMessageEntity $mail) {
$mail->counters = collect([
'clicks' => $mail->eTrackings->sum('clicks'),
'views' => $mail->ePixels->sum('views'),
'sum_views' => $mail->ePixels->sum('sum_views'),
'unsubscribers' => $mail->eUnsubscribers->sum('count')
]);
return $mail;
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment