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 Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
|
|
||||||
use App\Ramcar\APIResult;
|
use App\Ramcar\APIResult;
|
||||||
|
|
||||||
use App\Entity\MobileSession;
|
use App\Entity\MobileSession;
|
||||||
|
use App\Entity\Customer;
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
|
|
||||||
|
|
@ -67,8 +69,14 @@ class APIController extends Controller
|
||||||
// returns APIResult object
|
// returns APIResult object
|
||||||
$res = new APIResult();
|
$res = new APIResult();
|
||||||
|
|
||||||
// inject api_key in params
|
// check for api_key in query string
|
||||||
$params[] = 'api_key';
|
$api_key = $req->query->get('api_key');
|
||||||
|
if (empty($api_key))
|
||||||
|
{
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage('Missing API key');
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
// check missing parameters
|
// check missing parameters
|
||||||
$missing = $this->checkMissingParameters($req, $params);
|
$missing = $this->checkMissingParameters($req, $params);
|
||||||
|
|
@ -81,7 +89,7 @@ class APIController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
// check api key
|
// check api key
|
||||||
$sess = $this->checkAPIKey($em, $req->request->get('api_key'));
|
$sess = $this->checkAPIKey($em, $req->query->get('api_key'));
|
||||||
if ($sess == null)
|
if ($sess == null)
|
||||||
{
|
{
|
||||||
$res->setError(true)
|
$res->setError(true)
|
||||||
|
|
@ -230,7 +238,7 @@ class APIController extends Controller
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getInfo()
|
public function getInfo(Request $req)
|
||||||
{
|
{
|
||||||
// check required parameters and api key
|
// check required parameters and api key
|
||||||
$required_params = [];
|
$required_params = [];
|
||||||
|
|
@ -239,16 +247,78 @@ class APIController extends Controller
|
||||||
if ($res->isError())
|
if ($res->isError())
|
||||||
return $res->getReturnResponse();
|
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();
|
return $res->getReturnResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateInfo(Request $req)
|
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()
|
public function listVehicleManufacturers()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue