RecipientController.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Http\Requests\IndexRecipientRequest;
  5. use App\Http\Requests\StoreRecipientRequest;
  6. use App\Http\Resources\RecipientResource;
  7. class RecipientController extends Controller
  8. {
  9. public function index(IndexRecipientRequest $request)
  10. {
  11. $recipients = user()->recipients()->with('aliases')->latest();
  12. if ($request->input('filter.verified') === 'true') {
  13. $recipients->verified();
  14. }
  15. if ($request->input('filter.verified') === 'false') {
  16. $recipients->verified('false');
  17. }
  18. return RecipientResource::collection($recipients->get());
  19. }
  20. public function show($id)
  21. {
  22. $recipient = user()->recipients()->findOrFail($id);
  23. return new RecipientResource($recipient->load('aliases'));
  24. }
  25. public function store(StoreRecipientRequest $request)
  26. {
  27. $recipient = user()->recipients()->create(['email' => strtolower($request->email)]);
  28. $recipient->sendEmailVerificationNotification();
  29. return new RecipientResource($recipient->refresh()->load('aliases'));
  30. }
  31. public function destroy($id)
  32. {
  33. if ($id === user()->default_recipient_id) {
  34. return response('You cannot delete your default recipient', 403);
  35. }
  36. $recipient = user()->recipients()->findOrFail($id);
  37. $recipient->delete();
  38. return response('', 204);
  39. }
  40. }