40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Geral;
|
|
|
|
use App\Enums\Cadastro\UnidadeMedida;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Services\Geral\ImcService;
|
|
use Illuminate\Http\Response;
|
|
|
|
class ImcController extends Controller
|
|
{
|
|
public function calc($unidadeMedidaMassaId, $massa, $unidadeMedidaAlturaId, $altura)
|
|
{
|
|
$errors = [];
|
|
|
|
if ($unidadeMedidaMassaId != UnidadeMedida::QUILOGRAMAS
|
|
&& $unidadeMedidaMassaId != UnidadeMedida::GRAMAS
|
|
) {
|
|
|
|
$errors[] = 'A unidade de medida da massa deve ser gramas ou quilogramas.';
|
|
}
|
|
|
|
if ($unidadeMedidaAlturaId != UnidadeMedida::METROS
|
|
&& $unidadeMedidaAlturaId != UnidadeMedida::CENTIMETROS
|
|
) {
|
|
|
|
$errors[] = 'A unidade de medida da massa deve ser centímetros ou metros.';
|
|
}
|
|
|
|
if (!empty($errors)) {
|
|
|
|
return response()->json($errors, Response::HTTP_BAD_REQUEST);
|
|
}
|
|
|
|
$imc = ImcService::calculate($unidadeMedidaMassaId, $massa, $unidadeMedidaAlturaId, $altura);
|
|
|
|
return response()->json($imc, Response::HTTP_OK);
|
|
}
|
|
}
|