From 7a8ff5bf429e8656709069348e0cf7cf643c0c0d Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sat, 20 Jul 2019 12:45:28 +0800 Subject: [PATCH 1/4] Add longitude and latitude to partner information in mobile API calls #231 --- src/Controller/APIController.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 953a0edd..7db96743 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -2014,6 +2014,8 @@ class APIController extends Controller 'contact_nums' => $partner->getContactNumbers(), 'time_open' => $partner->getTimeOpen()->format("g:i A"), 'time_close' => $partner->getTimeClose()->format("g:i A"), + 'longitude' => $partner->getCoordinates()->getLongitude(), + 'latitude' => $partner->getCoordinates()->getLatitude(), 'reviews' => $rev, ]; @@ -2051,10 +2053,10 @@ class APIController extends Controller $result = $query->getResult(); $data = []; + $partners = []; foreach($result as $row) { - $partner = []; - $partner[] = [ + $partners[] = [ 'id' => $row[0]->getID(), 'name' => $row[0]->getName(), 'branch' => $row[0]->getBranch(), @@ -2062,14 +2064,14 @@ class APIController extends Controller 'contact_nums' => $row[0]->getContactNumbers(), 'time_open' => $row[0]->getTimeOpen()->format("g:i A"), 'time_close' => $row[0]->getTimeClose()->format("g:i A"), - ]; - - $data[] = [ - 'partner' => $partner, + 'longitude' => $row[0]->getCoordinates()->getLongitude(), + 'latitude' => $row[0]->getCoordinates()->getLatitude(), 'db_distance' => $row['dist'], - ]; + ]; } + $data['partners'] = $partners; + $res->setData($data); return $res->getReturnResponse(); From 54269d54ac5efd143ac4ceccd7c3f2f5d50112d7 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sat, 20 Jul 2019 12:50:16 +0800 Subject: [PATCH 2/4] Change url of provider info mobile api call #231 --- config/routes/api.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes/api.yaml b/config/routes/api.yaml index 5e04aea3..3b460e42 100644 --- a/config/routes/api.yaml +++ b/config/routes/api.yaml @@ -136,7 +136,7 @@ api_service_list: methods: [GET] api_partner_info: - path: /api/partner/{pid} + path: /api/partners/{pid} controller: App\Controller\APIController:getPartnerInformation methods: [GET] From 899f9df721d7385a740b36a69ae414b4019c48b5 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sat, 20 Jul 2019 12:51:52 +0800 Subject: [PATCH 3/4] Remove mobile_session from review information in mobile api #231 --- src/Controller/APIController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 7db96743..3d324a0a 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -2001,7 +2001,7 @@ class APIController extends Controller 'rating' => $review->getRating(), 'message' => $review->getMessage(), 'date_create' => $review->getDateCreate()->format("d M Y g:i A"), - 'mobile_session' => $review->getMobileSession()->getID(), + // 'mobile_session' => $review->getMobileSession()->getID(), ]; } } From da32614181e233ea4a689a61264bb4cead72b17e Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sat, 20 Jul 2019 15:15:47 +0800 Subject: [PATCH 4/4] Add partner review api call #231 --- config/routes/api.yaml | 4 +++ src/Controller/APIController.php | 42 ++++++++++++++++++++++++++++++++ src/Entity/Review.php | 2 +- 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/config/routes/api.yaml b/config/routes/api.yaml index 3b460e42..f55b0d83 100644 --- a/config/routes/api.yaml +++ b/config/routes/api.yaml @@ -145,3 +145,7 @@ api_partner: controller: App\Controller\APIController:getClosestPartners methods: [GET] +api_partner_review: + path: /api/partners/{pid}/review + controller: App\Controller\APIController:reviewPartner + methods: [POST] diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 3d324a0a..f65f0c23 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -5,6 +5,7 @@ namespace App\Controller; use Doctrine\ORM\Query; use Doctrine\ORM\QueryBuilder; use Doctrine\DBAL\DBALException; +use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Bundle\FrameworkBundle\Controller\Controller; @@ -2076,4 +2077,45 @@ class APIController extends Controller return $res->getReturnResponse(); } + + public function reviewPartner($pid, Request $req, EntityManagerInterface $em) + { + $required_params = [ + 'rating', + 'message', + ]; + + $res = $this->checkParamsAndKey($req, $em, $required_params); + if ($res->isError()) + return $res->getReturnResponse(); + + $rating = $req->request->get('rating'); + $msg = $req->request->get('message'); + + // TODO: check rating if 1 - 5 + + // check if partner exists + $partner = $em->getRepository(Partner::class)->find($pid); + if ($partner == null) + { + $res->setError(true) + ->setErrorMessage('No partner found.'); + return $res->getReturnResponse(); + } + + $rev = new Review(); + $rev->setRating($rating) + ->setMessage($msg) + ->setPartner($partner) + ->setMobileSession($this->session); + + // save to db + $em->persist($rev); + $em->flush(); + + $data = []; + $res->setData($data); + + return $res->getReturnResponse(); + } } diff --git a/src/Entity/Review.php b/src/Entity/Review.php index 57ee2c6f..9903784e 100644 --- a/src/Entity/Review.php +++ b/src/Entity/Review.php @@ -56,7 +56,7 @@ class Review { $this->date_create = new DateTime(); $this->rating = 0; - $this->comment = ""; + $this->message = ""; } public function getID()