Add API call to get details and reviews for a given partner. #228
This commit is contained in:
parent
4782bd7fe8
commit
5c70cad362
2 changed files with 57 additions and 0 deletions
|
|
@ -129,3 +129,8 @@ api_service_list:
|
||||||
path: /api/services
|
path: /api/services
|
||||||
controller: App\Controller\APIController:listServices
|
controller: App\Controller\APIController:listServices
|
||||||
methods: [GET]
|
methods: [GET]
|
||||||
|
|
||||||
|
api_partner_info:
|
||||||
|
path: /api/partner/{pid}
|
||||||
|
controller: App\Controller\APIController:getPartnerInformation
|
||||||
|
methods: [GET]
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@ use App\Entity\Battery;
|
||||||
use App\Entity\RiderRating;
|
use App\Entity\RiderRating;
|
||||||
use App\Entity\JOEvent;
|
use App\Entity\JOEvent;
|
||||||
use App\Entity\Service;
|
use App\Entity\Service;
|
||||||
|
use App\Entity\Partner;
|
||||||
|
use App\Entity\Review;
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use Exception;
|
use Exception;
|
||||||
|
|
@ -1853,4 +1855,54 @@ class APIController extends Controller
|
||||||
|
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getPartnerInformation(Request $req, $pid)
|
||||||
|
{
|
||||||
|
$required_params = [];
|
||||||
|
$em = $this->getDoctrine()->getManager();
|
||||||
|
$res = $this->checkParamsAndKey($req, $em, $required_params);
|
||||||
|
if ($res->isError())
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
|
||||||
|
// get partner
|
||||||
|
$partner = $em->getRepository(Partner::class)->findOneBy(['id' => $pid]);
|
||||||
|
if ($partner == null)
|
||||||
|
{
|
||||||
|
$res->setError(true)
|
||||||
|
->setErrorMessage('No partner found.');
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
// get reviews for partner
|
||||||
|
$reviews = $em->getRepository(Review::class)->findBy(['partner' => $partner]);
|
||||||
|
$rev = [];
|
||||||
|
if (!empty($reviews))
|
||||||
|
{
|
||||||
|
foreach($reviews as $review)
|
||||||
|
{
|
||||||
|
$rev[] = [
|
||||||
|
'id' => $review->getID(),
|
||||||
|
'rating' => $review->getRating(),
|
||||||
|
'message' => $review->getMessage(),
|
||||||
|
'date_create' => $review->getDateCreate()->format("d M Y g:i A"),
|
||||||
|
'mobile_session' => $review->getMobileSession()->getID(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$data['partner'] = [
|
||||||
|
'id' => $partner->getID(),
|
||||||
|
'name' => $partner->getName(),
|
||||||
|
'branch' => $partner->getBranch(),
|
||||||
|
'address' => $partner->getAddress(),
|
||||||
|
'contact_nums' => $partner->getContactNumbers(),
|
||||||
|
'time_open' => $partner->getTimeOpen()->format("d M Y g:i A"),
|
||||||
|
'time_close' => $partner->getTimeClose()->format("d M Y g:i A"),
|
||||||
|
'reviews' => $rev,
|
||||||
|
];
|
||||||
|
|
||||||
|
$res->setData($data);
|
||||||
|
|
||||||
|
return $res->getReturnResponse();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue