Make api json_encode result use JSON_FORCE_OBJECT

This commit is contained in:
Kendrick Chan 2018-01-29 08:36:08 +08:00
parent e3a41febc5
commit fea805e385
3 changed files with 75 additions and 12 deletions

View file

@ -36,7 +36,7 @@ api_vehicle_mfg_list:
methods: [GET] methods: [GET]
api_vehicle_make_list: api_vehicle_make_list:
path: /api/vehicle/mfgs/{id}/makes path: /api/vehicle/mfgs/{mfg_id}/makes
controller: App\Controller\APIController::listVehicleMakes controller: App\Controller\APIController::listVehicleMakes
methods: [GET] methods: [GET]
@ -61,7 +61,7 @@ api_promo_list:
methods: [GET] methods: [GET]
api_battery_list: api_battery_list:
path: /api/vehicles/{id}/compatible_batteries path: /api/vehicles/{vid}/compatible_batteries
controller: App\Controller\APIController::getCompatibleBatteries controller: App\Controller\APIController::getCompatibleBatteries
methods: [GET] methods: [GET]

View file

@ -8,6 +8,7 @@ use Doctrine\DBAL\DBALException;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use App\Ramcar\APIResult; use App\Ramcar\APIResult;
use App\Entity\MobileSession; use App\Entity\MobileSession;
@ -112,7 +113,7 @@ class APIController extends Controller
$params = implode(', ', $missing); $params = implode(', ', $missing);
$res->setError(true) $res->setError(true)
->setErrorMessage('Missing parameter(s): ' . $params); ->setErrorMessage('Missing parameter(s): ' . $params);
return $this->json($res->getReturnResponse()); return $res->getReturnResponse();
} }
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
@ -161,7 +162,7 @@ class APIController extends Controller
// response // response
return $this->json($res->getReturnResponse()); return $res->getReturnResponse();
} }
public function confirmNumber(Request $req) public function confirmNumber(Request $req)
@ -175,7 +176,7 @@ class APIController extends Controller
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$res = $this->checkParamsAndKey($req, $em, $required_params); $res = $this->checkParamsAndKey($req, $em, $required_params);
if ($res->isError()) if ($res->isError())
return $this->json($res->getReturnResponse()); return $res->getReturnResponse();
// phone number // phone number
$phone_number = $req->request->get('phone_number'); $phone_number = $req->request->get('phone_number');
@ -194,13 +195,11 @@ class APIController extends Controller
// TODO: send sms to number // TODO: send sms to number
// response // response
return $this->json($res->getReturnResponse()); return $res->getReturnResponse();
} }
public function validateCode(Request $req) public function validateCode(Request $req)
{ {
$res = new APIResult();
// check parameters // check parameters
$required_params = [ $required_params = [
'code', 'code',
@ -210,7 +209,7 @@ class APIController extends Controller
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$res = $this->checkParamsAndKey($req, $em, $required_params); $res = $this->checkParamsAndKey($req, $em, $required_params);
if ($res->isError()) if ($res->isError())
return $this->json($res->getReturnResponse()); return $res->getReturnResponse();
// code is wrong // code is wrong
$code = $req->request->get('code'); $code = $req->request->get('code');
@ -218,7 +217,7 @@ class APIController extends Controller
{ {
$res->setError(true) $res->setError(true)
->setErrorMessage('Wrong confirm code'); ->setErrorMessage('Wrong confirm code');
return $this->json($res->getReturnResponse()); return $res->getReturnResponse();
} }
// set confirm date // set confirm date
@ -228,6 +227,63 @@ class APIController extends Controller
$em->flush(); $em->flush();
// response // response
return $this->json($res->getReturnResponse()); return $res->getReturnResponse();
}
public function getInfo()
{
// 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();
return $res->getReturnResponse();
}
public function updateInfo(Request $req)
{
}
public function getStatus()
{
}
public function listVehicleManufacturers()
{
}
public function listVehicleMakes($mfg_id)
{
}
public function addVehicle(Request $req)
{
}
public function updateVehicle(Request $req, $id)
{
}
public function listVehicles()
{
}
public function listPromos()
{
}
public function getCompatibleBatteries(Request $req, $vid)
{
}
public function requestJobOrder(Request $req)
{
}
public function getEstimate(Request $req)
{
} }
} }

View file

@ -2,6 +2,8 @@
namespace App\Ramcar; namespace App\Ramcar;
use Symfony\Component\HttpFoundation\JsonResponse;
class APIResult class APIResult
{ {
protected $err_flag; protected $err_flag;
@ -55,12 +57,17 @@ class APIResult
else else
$status = 'success'; $status = 'success';
return [ $return_data = [
'error' => [ 'error' => [
'status' => $status, 'status' => $status,
'message' => $this->err_message 'message' => $this->err_message
], ],
'data' => $this->data 'data' => $this->data
]; ];
$json = new JsonResponse($return_data);
$json->setEncodingOptions(JsonResponse::DEFAULT_ENCODING_OPTIONS | JSON_FORCE_OBJECT);
return $json;
} }
} }