Add partner review api call #231

This commit is contained in:
Kendrick Chan 2019-07-20 15:15:47 +08:00
parent 899f9df721
commit da32614181
3 changed files with 47 additions and 1 deletions

View file

@ -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]

View file

@ -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();
}
}

View file

@ -56,7 +56,7 @@ class Review
{
$this->date_create = new DateTime();
$this->rating = 0;
$this->comment = "";
$this->message = "";
}
public function getID()