use App\Http\Controllers\Controller;
use Module\Share\Contracts\Response\ResponseGenerator;
use Module\Auth\Http\Requests\v2\LoginRequest;
use Module\User\Http\Resources\v2\UserResource;
use Module\Auth\Services\v2\AuthService;
class AuthController extends Controller implements ResponseGenerator
{
private AuthService $service;
public function __construct()
{
$this->service = resolve(AuthService::class);
}
//
public function login(LoginRequest $request): \Illuminate\Http\JsonResponse
{
$login = $this->service->login($request);
return $this->res($login['status'], $login['code'], $login['message'], $login['data']);
}
public function res($status, $code, $message, $data = null): \Illuminate\Http\JsonResponse
{
return response()->json([
'status' => $status,
'message' => $message,
'data' => !$data ? null : [
'user' => new UserResource($data['user']),
'token' => $data['token']
]
], $code);
}
}