AliasController.php 1.7 KB

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