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()