<?php
namespace EADPlataforma\Controller\Admin;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use EADPlataforma\Entity\ProductOpportunity;
use EADPlataforma\Enum\ErrorEnum;
/**
* @Route(
* path = "/admin/product/opportunity",
* schemes = {"https","http"}
* )
* @Cache(
* maxage = "0",
* smaxage = "0",
* expires = "now",
* public = false
* )
*/
class ProductOpportunityController extends AbstractController {
public function getEntityClass(){
return ProductOpportunity::class;
}
/**
* @Route(
* path = "/list/paginate",
* methods = {"GET"}
* )
*/
public function getProductOpportunity(Request $request) {
$permission = $this->userPermissionUtil->getPermission(
"product",
"product_opportunity",
"see"
);
if($this->userPermissionUtil->isLow($permission)){
return $this->eadResponse(null, ErrorEnum::PERMISSION);
}
$this->requestUtil->setRequest($request)->setData();
$orderParam = $this->requestUtil->getField('order');
$searchText = $this->requestUtil->getField('searchText');
$limit = (int)$this->requestUtil->getField('limit');
$offset = (int)$this->requestUtil->getField('offset');
$order = [ "dateRegister" => "DESC" ];
if(!empty($orderParam)){
$order = json_decode($orderParam, true);
}
$data = $this->repository->getListProductOpportunity(
$searchText,
$order,
$limit,
$offset
);
return $this->eadResponse($data);
}
/**
* @Route(
* path = "/detail",
* methods = {"GET"},
* )
*/
public function getProductOpportunityDetail(Request $request) {
$permission = $this->userPermissionUtil->getPermission(
"product",
"product_opportunity",
"see"
);
if($this->userPermissionUtil->isLow($permission)){
return $this->eadResponse(null, ErrorEnum::PERMISSION);
}
$this->requestUtil->setRequest($request)->setData();
$email = $this->requestUtil->getField('email');
$data = $this->repository->getDetailProductOpportunity($email);
if(!$data){
return $this->eadResponse(null, ErrorEnum::NOT_FOUND);
}
$path = $this->generalService->generateUrl('getCartOpportunity', [
"hash" => md5($email),
]);
$data["url"] = "https://{$this->configuration->getActiveDomain()}{$path}";
return $this->eadResponse($data);
}
}