diff --git a/app/DTO/Api/User/Response/UserShowDTO.php b/app/DTO/Api/User/Response/UserShowDTO.php new file mode 100644 index 0000000..d8c95ab --- /dev/null +++ b/app/DTO/Api/User/Response/UserShowDTO.php @@ -0,0 +1,23 @@ +id === auth()->id() + ); + } +} diff --git a/app/Http/Controllers/Api/ChallengeController.php b/app/Http/Controllers/Api/ChallengeController.php index 1937e2d..307265c 100644 --- a/app/Http/Controllers/Api/ChallengeController.php +++ b/app/Http/Controllers/Api/ChallengeController.php @@ -24,4 +24,14 @@ public function show(int $id): array return $this->challengeService->show($challenge); } + + public function joinPersonal(): array + { + return []; + } + + public function joinTeam(): array + { + return []; + } } diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php index 50f907f..e8d68f1 100644 --- a/app/Http/Controllers/Api/UserController.php +++ b/app/Http/Controllers/Api/UserController.php @@ -19,7 +19,9 @@ public function __construct( public function show(int $id): array { - return User::query()->findOrFail($id)?->toArray(); + $user = User::query()->findOrFail($id); + + return $this->userService->show($user); } public function update(int $id, UserUpdateDTO $userUpdateDTO): array|JsonResponse diff --git a/app/Services/Api/UserService.php b/app/Services/Api/UserService.php index 940d217..7f51f77 100644 --- a/app/Services/Api/UserService.php +++ b/app/Services/Api/UserService.php @@ -8,6 +8,7 @@ use App\DTO\Api\User\Response\UserAchievementPersonalDTO; use App\DTO\Api\User\Response\UserAchievementTeamsDTO; use App\DTO\Api\User\Response\UserChallengeDTO; +use App\DTO\Api\User\Response\UserShowDTO; use App\DTO\Api\User\Response\UserTeamDTO; use App\Models\Team; use App\Models\User; @@ -16,6 +17,11 @@ class UserService { + public function show(User $user): array + { + return UserShowDTO::from($user)->toArray(); + } + public function achievement(Team $team, User $user): array { $achievementPersonal = $user->achievements()->get(); diff --git a/routes/api.php b/routes/api.php index 5fb6e24..02dbd73 100755 --- a/routes/api.php +++ b/routes/api.php @@ -32,6 +32,8 @@ Route::group(['prefix' => 'challenges'], static function () { Route::get('/', [ChallengeController::class, 'index'])->name('teams.index'); Route::get('/{id}', [ChallengeController::class, 'show'])->name('teams.show'); + Route::post('/{id}/joins/personal', [ChallengeController::class, 'joinPersonal'])->name('teams.joinPersonal'); + Route::post('/{id}/joins/teams', [ChallengeController::class, 'joinTeam'])->name('teams.joinTeam'); }); });