X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=app%2FHttp%2FControllers%2FUserController.php;h=4bf2bb30324cf88c73c4b0225123de81793f1e7d;hb=c5b15dc5518c627daa4f02f653ff900e4fe13db7;hp=c0ab73d9b442a30ff340375e97d4747b0e5e9a5f;hpb=920f11ddfeb2175e4e1556886773dcd044c6085b;p=alttp.git diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index c0ab73d..4bf2bb3 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -9,6 +9,20 @@ use Illuminate\Http\Request; class UserController extends Controller { + public function search(Request $request) { + $validatedData = $request->validate([ + 'phrase' => 'string|nullable', + ]); + + $users = User::query(); + if (!empty($validatedData['phrase'])) { + $users = $users->where('username', 'LIKE', '%'.$validatedData['phrase'].'%') + ->orWhere('nickname', 'LIKE', '%'.$validatedData['phrase'].'%'); + } + $users = $users->limit(5); + return $users->get()->toJson(); + } + public function setLanguage(Request $request) { $user = $request->user(); if (!$user) return; @@ -23,6 +37,21 @@ class UserController extends Controller return $user->toJson(); } + public function setNickname(Request $request, User $user) { + $this->authorize('setNickname', $user); + + $validatedData = $request->validate([ + 'nickname' => 'string', + ]); + + $user->nickname = $validatedData['nickname']; + $user->update(); + + UserChanged::dispatch($user); + + return $user->toJson(); + } + public function setStreamLink(Request $request, User $user) { $this->authorize('setStreamLink', $user); @@ -41,6 +70,14 @@ class UserController extends Controller public function single(Request $request, $id) { $user = User::findOrFail($id); $this->authorize('view', $user); + $user->load('participation'); + $user->load('participation.tournament'); + $user->loadCount('round_first'); + $user->loadCount('round_second'); + $user->loadCount('round_third'); + $user->loadCount('tournament_first'); + $user->loadCount('tournament_second'); + $user->loadCount('tournament_third'); return $user->toJson(); }