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:
commit
53c9964fe3
3 changed files with 58 additions and 10 deletions
|
|
@ -136,7 +136,7 @@ api_service_list:
|
||||||
methods: [GET]
|
methods: [GET]
|
||||||
|
|
||||||
api_partner_info:
|
api_partner_info:
|
||||||
path: /api/partner/{pid}
|
path: /api/partners/{pid}
|
||||||
controller: App\Controller\APIController:getPartnerInformation
|
controller: App\Controller\APIController:getPartnerInformation
|
||||||
methods: [GET]
|
methods: [GET]
|
||||||
|
|
||||||
|
|
@ -145,3 +145,7 @@ api_partner:
|
||||||
controller: App\Controller\APIController:getClosestPartners
|
controller: App\Controller\APIController:getClosestPartners
|
||||||
methods: [GET]
|
methods: [GET]
|
||||||
|
|
||||||
|
api_partner_review:
|
||||||
|
path: /api/partners/{pid}/review
|
||||||
|
controller: App\Controller\APIController:reviewPartner
|
||||||
|
methods: [POST]
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ namespace App\Controller;
|
||||||
use Doctrine\ORM\Query;
|
use Doctrine\ORM\Query;
|
||||||
use Doctrine\ORM\QueryBuilder;
|
use Doctrine\ORM\QueryBuilder;
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||||
|
|
@ -2001,7 +2002,7 @@ class APIController extends Controller
|
||||||
'rating' => $review->getRating(),
|
'rating' => $review->getRating(),
|
||||||
'message' => $review->getMessage(),
|
'message' => $review->getMessage(),
|
||||||
'date_create' => $review->getDateCreate()->format("d M Y g:i A"),
|
'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(),
|
'contact_nums' => $partner->getContactNumbers(),
|
||||||
'time_open' => $partner->getTimeOpen()->format("g:i A"),
|
'time_open' => $partner->getTimeOpen()->format("g:i A"),
|
||||||
'time_close' => $partner->getTimeClose()->format("g:i A"),
|
'time_close' => $partner->getTimeClose()->format("g:i A"),
|
||||||
|
'longitude' => $partner->getCoordinates()->getLongitude(),
|
||||||
|
'latitude' => $partner->getCoordinates()->getLatitude(),
|
||||||
'reviews' => $rev,
|
'reviews' => $rev,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -2051,10 +2054,10 @@ class APIController extends Controller
|
||||||
$result = $query->getResult();
|
$result = $query->getResult();
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
$partners = [];
|
||||||
foreach($result as $row)
|
foreach($result as $row)
|
||||||
{
|
{
|
||||||
$partner = [];
|
$partners[] = [
|
||||||
$partner[] = [
|
|
||||||
'id' => $row[0]->getID(),
|
'id' => $row[0]->getID(),
|
||||||
'name' => $row[0]->getName(),
|
'name' => $row[0]->getName(),
|
||||||
'branch' => $row[0]->getBranch(),
|
'branch' => $row[0]->getBranch(),
|
||||||
|
|
@ -2062,14 +2065,55 @@ class APIController extends Controller
|
||||||
'contact_nums' => $row[0]->getContactNumbers(),
|
'contact_nums' => $row[0]->getContactNumbers(),
|
||||||
'time_open' => $row[0]->getTimeOpen()->format("g:i A"),
|
'time_open' => $row[0]->getTimeOpen()->format("g:i A"),
|
||||||
'time_close' => $row[0]->getTimeClose()->format("g:i A"),
|
'time_close' => $row[0]->getTimeClose()->format("g:i A"),
|
||||||
];
|
'longitude' => $row[0]->getCoordinates()->getLongitude(),
|
||||||
|
'latitude' => $row[0]->getCoordinates()->getLatitude(),
|
||||||
$data[] = [
|
|
||||||
'partner' => $partner,
|
|
||||||
'db_distance' => $row['dist'],
|
'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);
|
$res->setData($data);
|
||||||
|
|
||||||
return $res->getReturnResponse();
|
return $res->getReturnResponse();
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class Review
|
||||||
{
|
{
|
||||||
$this->date_create = new DateTime();
|
$this->date_create = new DateTime();
|
||||||
$this->rating = 0;
|
$this->rating = 0;
|
||||||
$this->comment = "";
|
$this->message = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getID()
|
public function getID()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue