Add review tags api #730

This commit is contained in:
Ramon Gutierrez 2023-05-22 14:12:33 +08:00
parent a821c42f0d
commit e235026197
3 changed files with 119 additions and 2 deletions

View file

@ -234,5 +234,14 @@ apiv2_customer_hash_get:
# motolite events
apiv2_motolite_events:
path: /apiv2/motolite_events
controller: App\Controller\CustomerAppAPI\MotoliteEventController:getEvents
methods: [GET]
controller: App\Controller\CustomerAppAPI\MotoliteEventController::getEvents
methods: [GET]
# review tags
apiv2_partner_review_tags:
path: /apiv2/review_tags/partner
controller: App\Controller\CustomerAppAPI\ReviewTagController::getPartnerReviewTags
apiv2_rider_review_tags:
path: /apiv2/review_tags/rider
controller: App\Controller\CustomerAppAPI\ReviewTagController::getPartnerReviewTags

View file

@ -0,0 +1,46 @@
<?php
namespace App\Controller\CustomerAppAPI;
use Symfony\Component\HttpFoundation\Request;
use Catalyst\ApiBundle\Component\Response as ApiResponse;
use App\Entity\ReviewTag;
class ReviewTagController extends ApiController
{
public function getPartnerReviewTags(Request $req)
{
return $this->getTags($req, "partner");
}
public function getRiderReviewTags(Request $req)
{
return $this->getTags($req, "rider");
}
protected function getTags(Request $req, $tag_type)
{
// validate params
$validity = $this->validateRequest($req);
if (!$validity['is_valid']) {
return new ApiResponse(false, $validity['error']);
}
// get manufacturer list
$tags = $this->em->getRepository(ReviewTag::class)->findBy(['type' => $tag_type], ['name' => 'asc']);
$tag_list = [];
foreach ($tags as $tag) {
$tag_list[] = [
'id' => $tag->getID(),
'name' => $tag->getName(),
];
}
return new ApiResponse(true, '', [
'tags' => $tag_list,
]);
}
}

62
src/Entity/ReviewTag.php Normal file
View file

@ -0,0 +1,62 @@
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="review_tag")
*/
class ReviewTag
{
// unique id
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string", length=80)
* @Assert\NotBlank()
*/
protected $name;
/**
* @ORM\Column(type="string", length=80)
* @Assert\NotBlank()
*/
protected $type;
public function getID()
{
return $this->id;
}
public function setName($name)
{
$this->name = $name;
return $this;
}
public function getName()
{
return $this->name;
}
public function setType($type)
{
$this->type = $type;
return $this;
}
public function getType()
{
return $this->type;
}
}