Add new API calls: info get, info update, status
This commit is contained in:
parent
fea805e385
commit
b18d02f521
1 changed files with 75 additions and 5 deletions
|
|
@ -11,7 +11,9 @@ use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
use App\Ramcar\APIResult;
|
||||
|
||||
use App\Entity\MobileSession;
|
||||
use App\Entity\Customer;
|
||||
|
||||
use DateTime;
|
||||
|
||||
|
|
@ -67,8 +69,14 @@ class APIController extends Controller
|
|||
// returns APIResult object
|
||||
$res = new APIResult();
|
||||
|
||||
// inject api_key in params
|
||||
$params[] = 'api_key';
|
||||
// check for api_key in query string
|
||||
$api_key = $req->query->get('api_key');
|
||||
if (empty($api_key))
|
||||
{
|
||||
$res->setError(true)
|
||||
->setErrorMessage('Missing API key');
|
||||
return $res;
|
||||
}
|
||||
|
||||
// check missing parameters
|
||||
$missing = $this->checkMissingParameters($req, $params);
|
||||
|
|
@ -81,7 +89,7 @@ class APIController extends Controller
|
|||
}
|
||||
|
||||
// check api key
|
||||
$sess = $this->checkAPIKey($em, $req->request->get('api_key'));
|
||||
$sess = $this->checkAPIKey($em, $req->query->get('api_key'));
|
||||
if ($sess == null)
|
||||
{
|
||||
$res->setError(true)
|
||||
|
|
@ -230,7 +238,7 @@ class APIController extends Controller
|
|||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function getInfo()
|
||||
public function getInfo(Request $req)
|
||||
{
|
||||
// check required parameters and api key
|
||||
$required_params = [];
|
||||
|
|
@ -239,16 +247,78 @@ class APIController extends Controller
|
|||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
||||
// if no customer found
|
||||
$cust = $this->session->getCustomer();
|
||||
if ($cust == null)
|
||||
{
|
||||
$data = [
|
||||
'first_name' => '',
|
||||
'last_name' => '',
|
||||
];
|
||||
$res->setData($data);
|
||||
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
// send back customer details
|
||||
$data = [
|
||||
'first_name' => $cust->getFirstName(),
|
||||
'last_name' => $cust->getLastName(),
|
||||
];
|
||||
$res->setData($data);
|
||||
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function updateInfo(Request $req)
|
||||
{
|
||||
// check required parameters and api key
|
||||
$required_params = [
|
||||
'first_name',
|
||||
'last_name',
|
||||
];
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
||||
// create new customer if it's not there
|
||||
$cust = $this->session->getCustomer();
|
||||
if ($cust == null)
|
||||
{
|
||||
$cust = new Customer();
|
||||
$em->persist($cust);
|
||||
|
||||
$this->session->setCustomer($cust);
|
||||
}
|
||||
|
||||
$cust->setFirstName($req->request->get('first_name'))
|
||||
->setLastName($req->request->get('last_name'))
|
||||
->setConfirmed($this->session->isConfirmed());
|
||||
|
||||
$em->flush();
|
||||
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function getStatus()
|
||||
public function getStatus(Request $req)
|
||||
{
|
||||
// check required parameters and api key
|
||||
$required_params = [];
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||
if ($res->isError())
|
||||
return $res->getReturnResponse();
|
||||
|
||||
// set data
|
||||
$data = [];
|
||||
if ($this->session->isConfirmed())
|
||||
$data['status'] = 'confirmed';
|
||||
else
|
||||
$data['status'] = 'unconfirmed';
|
||||
$res->setData($data);
|
||||
|
||||
return $res->getReturnResponse();
|
||||
}
|
||||
|
||||
public function listVehicleManufacturers()
|
||||
|
|
|
|||
Loading…
Reference in a new issue