AliasApiController.php 846 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\StoreAliasRequest;
  5. use App\Http\Resources\AliasResource;
  6. use Ramsey\Uuid\Uuid;
  7. class AliasApiController extends Controller
  8. {
  9. public function store(StoreAliasRequest $request)
  10. {
  11. if (user()->hasReachedUuidAliasLimit()) {
  12. return response('', 403);
  13. }
  14. if (user()->hasExceededNewAliasLimit()) {
  15. return response('', 429);
  16. }
  17. $uuid = Uuid::uuid4();
  18. $alias = user()->aliases()->create([
  19. 'id' => $uuid,
  20. 'email' => $uuid . '@' . $request->domain,
  21. 'local_part' => $uuid,
  22. 'domain' => $request->domain,
  23. 'description' => $request->description
  24. ]);
  25. return new AliasResource($alias->fresh());
  26. }
  27. }