Fix issues found during testing. #728

This commit is contained in:
Korina Cordero 2023-01-16 07:00:18 +00:00
parent 886a9e669e
commit ce133addfc
3 changed files with 70 additions and 8 deletions

View file

@ -65,7 +65,7 @@ class TestInsuranceConnectorCommand extends Command
->setMvFileNumber('123456789012345') ->setMvFileNumber('123456789012345')
->setMotorNumber('E31TE-0075268') ->setMotorNumber('E31TE-0075268')
->setSerialChassis('PA0SEF210K0075701') ->setSerialChassis('PA0SEF210K0075701')
->setYearModel('2020') ->setYearModel(2020)
->setMvTypeID(1) ->setMvTypeID(1)
->setBodyType('SEDAN') ->setBodyType('SEDAN')
->setLine(LineType::PRIVATE_CAR) ->setLine(LineType::PRIVATE_CAR)

View file

@ -34,10 +34,32 @@ class InsuranceAPIController extends Controller implements LoggedController
public function createCTPLApplication(Request $req, EntityManagerInterface $em, InsuranceDataValidator $ins_validator, public function createCTPLApplication(Request $req, EntityManagerInterface $em, InsuranceDataValidator $ins_validator,
InsuranceConnector $insurance) InsuranceConnector $insurance)
{ {
// TODO: are we letting the app fill in all the fields needed for the CTPL application?
// check parameters // check parameters
$required_params = [ $required_params = [
'', 'client_type',
'first_name',
'last_name',
'corporate_name',
'address_number',
'address_barangay',
'address_city',
'address_province',
'zipcode',
'mobile_number',
'email_address',
'make',
'model',
'series',
'color',
'plate_number',
'mv_file_number',
'motor_number',
'serial_chassis',
'year_model',
'mv_type_id',
'body_type',
'is_public',
'line',
]; ];
// check required parameters and api key // check required parameters and api key
@ -48,17 +70,18 @@ class InsuranceAPIController extends Controller implements LoggedController
// create client data // create client data
$client_data = new ClientData(); $client_data = new ClientData();
// TODO: set values for client data $this->setClientData($req, $client_data);
// check if client data values are valid // check if client data values are valid
$error_mesage = $ins_validator->validateClientData($client_data); $error_message = $ins_validator->validateClientData($client_data);
if ($error_message != null) if ($error_message != null)
{ {
error_log('client data values are not valid ' . $error_message);
// return error message // return error message
$res->setError(true) $res->setError(true)
->setErrorMessage($error_message); ->setErrorMessage($error_message);
return $res; return $res->getReturnResponse();
} }
$result = $insurance->processApplication($client_data); $result = $insurance->processApplication($client_data);
@ -71,7 +94,7 @@ class InsuranceAPIController extends Controller implements LoggedController
$res->setError(true) $res->setError(true)
->setErrorMessage($message); ->setErrorMessage($message);
return $res; return $res->getReturnResponse();
} }
// return data portion of result received from insurance api // return data portion of result received from insurance api
@ -82,6 +105,42 @@ class InsuranceAPIController extends Controller implements LoggedController
return $res->getReturnResponse(); return $res->getReturnResponse();
} }
protected function setClientData(Request $req, ClientData $client_data)
{
// set client info part
$client_data->setClientType($req->request->get('client_type', ''))
->setFirstName($req->request->get('first_name', ''))
->setMiddleName($req->request->get('middle_name', ''))
->setSurname($req->request->get('last_name', ''))
->setCorporateName($req->request->get('corporate_name', ''));
// set the client contact info part
$client_data->setAddressNumber($req->request->get('address_number', ''))
->setAddressStreet($req->request->get('address_street', ''))
->setAddressBuilding($req->request->get('address_building', ''))
->setAddressBarangay($req->request->get('address_barangay', ''))
->setAddressCity($req->request->get('address_city', ''))
->setAddressProvince($req->request->get('address_province', ''))
->setZipcode($req->request->get('zipcode', 0))
->setMobileNumber($req->request->get('mobile_number', ''))
->setEmailAddress($req->request->get('email_address', ''));
// set the car info part
$client_data->setMake($req->request->get('make', ''))
->setModel($req->request->get('model', ''))
->setSeries($req->request->get('series', ''))
->setColor($req->request->get('color', ''))
->setPlateNumber($req->request->get('plate_number', ''))
->setMvFileNumber($req->request->get('mv_file_number', ''))
->setMotorNumber($req->request->get('motor_number', ''))
->setSerialChassis($req->request->get('serial_chassis', ''))
->setYearModel($req->request->get('year_model', 0))
->setMvTypeID($req->request->get('mv_type_id', 0))
->setBodyType($req->request->get('body_type', ''))
->setLine($req->request->get('line', ''))
->setPublic($req->request->get('is_public', false));
}
protected function checkMissingParameters(Request $req, $params = []) protected function checkMissingParameters(Request $req, $params = [])
{ {
$missing = []; $missing = [];

View file

@ -57,6 +57,8 @@ class InsuranceDataValidator
return $error; return $error;
} }
// TODO: should we check for the format of corporate name if client type is Individual?
// number address is required // number address is required
if (empty($client_data->getAddressNumber())) if (empty($client_data->getAddressNumber()))
{ {
@ -173,7 +175,7 @@ class InsuranceDataValidator
} }
// vehicle year model is required // vehicle year model is required
if (empty($client_data->getYearModel())) if ($client_data->getYearModel() == 0)
{ {
$error = 'Vehicle year model is required.'; $error = 'Vehicle year model is required.';
return $error; return $error;
@ -222,6 +224,7 @@ class InsuranceDataValidator
// check line type and flag_public combination // check line type and flag_public combination
// if line type is MCOC/private motorcycle, flag_public should be false // if line type is MCOC/private motorcycle, flag_public should be false
// if line type is LCOC/public motorcycle, flag_public should be true // if line type is LCOC/public motorcycle, flag_public should be true
// TODO: should we check other combinations? Like PCOC/private car and flag_public is true?
if ($client_data->getLine() == LineType::PRIVATE_MOTORCYCLE) if ($client_data->getLine() == LineType::PRIVATE_MOTORCYCLE)
{ {
if ($client_data->isPublic()) if ($client_data->isPublic())