autenticacaoService = $autenticacaoService; $this->primeiroAcessoService = $primeiroAcessoService; $this->recuperacaoSenhaService = $recuperacaoSenhaService; } public function login(Request $request) { $dadosValidados = $request->validate([ 'cpf' => ['required', 'string'], 'senha' => ['required', 'string'], ]); try { $resultado = $this->autenticacaoService->login($dadosValidados); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNAUTHORIZED); } return response()->json($resultado, Response::HTTP_OK); } public function refresh(Request $request) { try { $resultado = $this->autenticacaoService->refresh(); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNAUTHORIZED); } return response()->json($resultado, Response::HTTP_OK); } public function primeiroAcessoIniciar(Request $request) { $dadosValidados = $request->validate([ 'cpf' => ['required', 'string'], 'data_nascimento' => ['required', 'date_format:Y-m-d'], 'telefone' => ['required', 'string'], ]); try { $resultado = $this->primeiroAcessoService->iniciar($dadosValidados); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json($resultado, Response::HTTP_OK); } public function primeiroAcessoReenviarCodigo(Request $request) { $dadosValidados = $request->validate([ 'token' => ['required', 'integer'], ]); try { $this->primeiroAcessoService->reenviarCodigo($dadosValidados['token']); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json([], Response::HTTP_NO_CONTENT); } public function primeiroAcessoValidarCodigo(Request $request) { $dadosValidados = $request->validate([ 'token' => ['required', 'integer'], 'codigo' => ['required', 'string'], ]); try { $this->primeiroAcessoService->validarCodigo($dadosValidados); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json([], Response::HTTP_NO_CONTENT); } public function primeiroAcessoDefinirSenha(Request $request) { $dadosValidados = $request->validate([ 'token' => ['required', 'integer'], 'senha' => ['required', 'string', 'min:6'], ]); try { $this->primeiroAcessoService->definirSenha($dadosValidados); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json([], Response::HTTP_NO_CONTENT); } public function recuperacaoSenhaIniciar(Request $request) { $dadosValidados = $request->validate([ 'cpf' => ['required', 'string'], ]); try { $resultado = $this->recuperacaoSenhaService->iniciar($dadosValidados['cpf']); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json($resultado, Response::HTTP_OK); } public function recuperacaoSenhaReenviarCodigo(Request $request) { $dadosValidados = $request->validate([ 'token' => ['required', 'integer'], ]); try { $this->recuperacaoSenhaService->reenviarCodigo($dadosValidados['token']); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json([], Response::HTTP_NO_CONTENT); } public function recuperacaoSenhaValidarCodigo(Request $request) { $dadosValidados = $request->validate([ 'token' => ['required', 'integer'], 'codigo' => ['required', 'string'], ]); try { $this->recuperacaoSenhaService->validarCodigo($dadosValidados); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json([], Response::HTTP_NO_CONTENT); } public function recuperacaoSenhaRedefinirSenha(Request $request) { $dadosValidados = $request->validate([ 'token' => ['required', 'integer'], 'senha' => ['required', 'string', 'min:6'], ]); try { $this->recuperacaoSenhaService->redefinirSenha($dadosValidados); } catch (\InvalidArgumentException $exception) { return response()->json([ 'message' => $exception->getMessage(), ], $exception->getCode() ?: Response::HTTP_UNPROCESSABLE_ENTITY); } return response()->json([], Response::HTTP_NO_CONTENT); } }