Files
rkm-conectasus-ci-sandbox/api/app/Http/Controllers/Mobile/ConectaCidadao/Autenticacao/AutenticacaoController.php
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

201 lines
6.9 KiB
PHP

<?php
namespace App\Http\Controllers\Mobile\ConectaCidadao\Autenticacao;
use App\Http\Controllers\Controller;
use App\Services\Mobile\ConectaCidadao\Autenticacao\AutenticacaoService;
use App\Services\Mobile\ConectaCidadao\Autenticacao\PrimeiroAcessoService;
use App\Services\Mobile\ConectaCidadao\Autenticacao\RecuperacaoSenhaService;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class AutenticacaoController extends Controller
{
private AutenticacaoService $autenticacaoService;
private PrimeiroAcessoService $primeiroAcessoService;
private RecuperacaoSenhaService $recuperacaoSenhaService;
public function __construct(
AutenticacaoService $autenticacaoService,
PrimeiroAcessoService $primeiroAcessoService,
RecuperacaoSenhaService $recuperacaoSenhaService
) {
$this->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);
}
}