Merge branch '231-fix-mobile-api-issues' into 'master'

Resolve "Fix mobile API issues"

Closes #231

See merge request jankstudio/resq!271
This commit is contained in:
Kendrick Chan 2019-07-20 07:16:52 +00:00
commit 53c9964fe3
3 changed files with 58 additions and 10 deletions

View file

@ -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]
@ -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;
@ -2001,7 +2002,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(),
];
}
}
@ -2014,6 +2015,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 +2054,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 +2065,55 @@ 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();
}
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()