ShowRecipientController.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Http\Controllers;
  3. class ShowRecipientController extends Controller
  4. {
  5. public function index()
  6. {
  7. $recipients = user()->recipients()->with([
  8. 'aliases:alias_id,aliasable_id,email',
  9. 'domainsUsingAsDefault.aliases:id,aliasable_id,email',
  10. 'AdditionalUsernamesUsingAsDefault.aliases:id,aliasable_id,email'
  11. ])->latest()->get();
  12. $recipients->each(function ($recipient) {
  13. if ($recipient->domainsUsingAsDefault) {
  14. $domainAliases = $recipient->domainsUsingAsDefault->flatMap(function ($domain) {
  15. return $domain->aliases;
  16. });
  17. $recipient->setRelation('aliases', $recipient->aliases->concat($domainAliases)->unique('email'));
  18. }
  19. if ($recipient->AdditionalUsernamesUsingAsDefault) {
  20. $AdditionalUsernameAliases = $recipient->AdditionalUsernamesUsingAsDefault->flatMap(function ($domain) {
  21. return $domain->aliases;
  22. });
  23. $recipient->setRelation('aliases', $recipient->aliases->concat($AdditionalUsernameAliases)->unique('email'));
  24. }
  25. });
  26. $count = $recipients->count();
  27. $recipients->each(function ($item, $key) use ($count) {
  28. $item['key'] = $count - $key;
  29. });
  30. return view('recipients.index', [
  31. 'recipients' => $recipients,
  32. 'aliasesUsingDefault' => user()->aliasesUsingDefault()->take(5)->get(),
  33. 'aliasesUsingDefaultCount' => user()->aliasesUsingDefault()->count(),
  34. ]);
  35. }
  36. }