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

View file

@ -8,6 +8,7 @@ use Doctrine\DBAL\DBALException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
use App\Ramcar\APIResult;
use App\Entity\MobileSession;
@ -112,7 +113,7 @@ class APIController extends Controller
$params = implode(', ', $missing);
$res->setError(true)
->setErrorMessage('Missing parameter(s): ' . $params);
return $this->json($res->getReturnResponse());
return $res->getReturnResponse();
}
$em = $this->getDoctrine()->getManager();
@ -161,7 +162,7 @@ class APIController extends Controller
// response
return $this->json($res->getReturnResponse());
return $res->getReturnResponse();
}
public function confirmNumber(Request $req)
@ -175,7 +176,7 @@ class APIController extends Controller
$em = $this->getDoctrine()->getManager();
$res = $this->checkParamsAndKey($req, $em, $required_params);
if ($res->isError())
return $this->json($res->getReturnResponse());
return $res->getReturnResponse();
// phone number
$phone_number = $req->request->get('phone_number');
@ -194,13 +195,11 @@ class APIController extends Controller
// TODO: send sms to number
// response
return $this->json($res->getReturnResponse());
return $res->getReturnResponse();
}
public function validateCode(Request $req)
{
$res = new APIResult();
// check parameters
$required_params = [
'code',
@ -210,7 +209,7 @@ class APIController extends Controller
$em = $this->getDoctrine()->getManager();
$res = $this->checkParamsAndKey($req, $em, $required_params);
if ($res->isError())
return $this->json($res->getReturnResponse());
return $res->getReturnResponse();
// code is wrong
$code = $req->request->get('code');
@ -218,7 +217,7 @@ class APIController extends Controller
{
$res->setError(true)
->setErrorMessage('Wrong confirm code');
return $this->json($res->getReturnResponse());
return $res->getReturnResponse();
}
// set confirm date
@ -228,6 +227,63 @@ class APIController extends Controller
$em->flush();
// 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;
use Symfony\Component\HttpFoundation\JsonResponse;
class APIResult
{
protected $err_flag;
@ -55,12 +57,17 @@ class APIResult
else
$status = 'success';
return [
$return_data = [
'error' => [
'status' => $status,
'message' => $this->err_message
],
'data' => $this->data
];
$json = new JsonResponse($return_data);
$json->setEncodingOptions(JsonResponse::DEFAULT_ENCODING_OPTIONS | JSON_FORCE_OBJECT);
return $json;
}
}