AdditionalUsernameController.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\DeletedUsername;
  4. use App\Http\Requests\StoreAdditionalUsernameRequest;
  5. use App\Http\Requests\UpdateAdditionalUsernameRequest;
  6. use App\Http\Resources\AdditionalUsernameResource;
  7. class AdditionalUsernameController extends Controller
  8. {
  9. public function index()
  10. {
  11. return view('usernames.index', [
  12. 'usernames' => user()->additionalUsernames()->latest()->get()
  13. ]);
  14. }
  15. public function store(StoreAdditionalUsernameRequest $request)
  16. {
  17. if (user()->hasReachedAdditionalUsernameLimit()) {
  18. return response('', 403);
  19. }
  20. $username = user()->additionalUsernames()->create(['username' => $request->username]);
  21. user()->increment('username_count');
  22. return new AdditionalUsernameResource($username->fresh());
  23. }
  24. public function update(UpdateAdditionalUsernameRequest $request, $id)
  25. {
  26. $username = user()->additionalUsernames()->findOrFail($id);
  27. $username->update(['description' => $request->description]);
  28. return new AdditionalUsernameResource($username);
  29. }
  30. public function destroy($id)
  31. {
  32. $username = user()->additionalUsernames()->findOrFail($id);
  33. DeletedUsername::create(['username' => $username->username]);
  34. $username->delete();
  35. return response('', 204);
  36. }
  37. }