diff --git a/app/Http/Resources/UserDetailedResource.php b/app/Http/Resources/UserDetailedResource.php new file mode 100644 index 0000000..4b801c4 --- /dev/null +++ b/app/Http/Resources/UserDetailedResource.php @@ -0,0 +1,24 @@ + $this->id, + 'name' => $this->name, + 'email' => $this->email, + 'guilds_count' => $this->guilds->count(), + 'messages_count' => $this->messages->count(), + ]; + } +} diff --git a/app/Http/Services/AuthService.php b/app/Http/Services/AuthService.php index f4f4d9f..ed01c1a 100644 --- a/app/Http/Services/AuthService.php +++ b/app/Http/Services/AuthService.php @@ -4,6 +4,7 @@ use App\Exceptions\AuthException; use App\Http\Resources\AuthResource; +use App\Http\Resources\UserDetailedResource; use App\interfaces\Services\IAuthService; use App\Jobs\SendWelcomeMail; use App\Models\User; @@ -41,8 +42,8 @@ public function register(array $data): array ]; } - public function user(): AuthResource + public function user(): UserDetailedResource { - return AuthResource::make(Auth::user()); + return UserDetailedResource::make(Auth::user()); } } diff --git a/app/interfaces/Services/IAuthService.php b/app/interfaces/Services/IAuthService.php index 3eea8cc..fee4486 100644 --- a/app/interfaces/Services/IAuthService.php +++ b/app/interfaces/Services/IAuthService.php @@ -3,6 +3,7 @@ namespace App\interfaces\Services; use App\Http\Resources\AuthResource; +use App\Http\Resources\UserDetailedResource; interface IAuthService { @@ -12,5 +13,5 @@ public function logout(): void; public function register(array $data): array; - public function user(): AuthResource; + public function user(): UserDetailedResource; } diff --git a/tests/Unit/Controllers/AuthControllerTest.php b/tests/Unit/Controllers/AuthControllerTest.php index 7259e07..dd887c7 100644 --- a/tests/Unit/Controllers/AuthControllerTest.php +++ b/tests/Unit/Controllers/AuthControllerTest.php @@ -2,6 +2,7 @@ use App\Exceptions\AuthException; use App\Http\Resources\AuthResource; +use App\Http\Resources\UserDetailedResource; use App\interfaces\Services\IAuthService; use App\Models\User; use Illuminate\Foundation\Testing\TestCase; @@ -60,10 +61,10 @@ test('test get user authenticated', function () { $user = User::factory()->make(); - $authResource = new AuthResource($user); + $userResource = new UserDetailedResource($user); - $this->mock(IAuthService::class, function (MockInterface $mock) use ($authResource) { - $mock->shouldReceive('user')->once()->andReturn($authResource); + $this->mock(IAuthService::class, function (MockInterface $mock) use ($userResource) { + $mock->shouldReceive('user')->once()->andReturn($userResource); }); $res = $this->actingAs($user)->getJson('api/auth/user');