AliasController.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\UpdateAliasRequest;
  4. use App\Http\Resources\AliasResource;
  5. use Ramsey\Uuid\Uuid;
  6. class AliasController extends Controller
  7. {
  8. public function index()
  9. {
  10. return view('aliases.index', [
  11. 'defaultRecipient' => user()->defaultRecipient,
  12. 'aliases' => user()->aliases()->with('recipients')->latest()->get(),
  13. 'recipients' => user()->verifiedRecipients,
  14. 'totalForwarded' => user()->totalEmailsForwarded(),
  15. 'totalBlocked' => user()->totalEmailsBlocked(),
  16. 'totalReplies' => user()->totalEmailsReplied(),
  17. 'domain' => user()->username.'.'.config('anonaddy.domain'),
  18. 'bandwidthMb' => user()->bandwidth_mb
  19. ]);
  20. }
  21. public function store()
  22. {
  23. if (user()->hasExceededNewAliasLimit()) {
  24. return response('', 429);
  25. }
  26. $uuid = Uuid::uuid4();
  27. $alias = user()->aliases()->create([
  28. 'id' => $uuid,
  29. 'email' => $uuid . '@anonaddy.me',
  30. 'local_part' => $uuid,
  31. 'domain' => 'anonaddy.me'
  32. ]);
  33. return new AliasResource($alias->fresh());
  34. }
  35. public function update(UpdateAliasRequest $request, $id)
  36. {
  37. $alias = user()->aliases()->findOrFail($id);
  38. $alias->update(['description' => $request->description]);
  39. return new AliasResource($alias);
  40. }
  41. public function destroy($id)
  42. {
  43. $alias = user()->aliases()->findOrFail($id);
  44. $alias->recipients()->detach();
  45. $alias->delete();
  46. return response('', 204);
  47. }
  48. }