<?php namespace Lc\ShopBundle\Controller; use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManagerInterface; use Lc\ShopBundle\Context\PriceUtilsInterface; use Lc\ShopBundle\Context\ProductCategoryInterface; use Lc\ShopBundle\Context\ProductInterface; use Lc\ShopBundle\Services\ProductFamilyUtils; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Security; class ApiController extends AbstractController { protected $security; protected $userManager; protected $em ; protected $utils ; protected $priceUtils ; protected $productFamilyUtils; public function __construct(EntityManagerInterface $entityManager, PriceUtilsInterface $priceUtils, ProductFamilyUtils $productFamilyUtils) { $this->em = $entityManager; $this->priceUtils = $priceUtils; $this->productFamilyUtils = $productFamilyUtils; } public function getEntity($entity, $id) { $repo = $this->em->getRepository(ProductCategoryInterface::class); $data = $repo->findBy(array()); if($entity == 'product'){ $repo = $this->em->getRepository(ProductInterface::class); $data = $repo->find($id); $data= array( 'id' => $data->getId(), 'title' => $data->getTitleInherited(), 'price' => $this->priceUtils->getPrice($data), 'priceWithTax' => $this->priceUtils->getPriceWithTax($data), 'priceWithTaxAndReduction' => $this->priceUtils->getPriceWithTaxAndReduction($data), 'unit' => $data->getUnitInherited(), 'availableQuantity' => $data->getAvailableQuantityInherited(), 'taxRate' => $data->getTaxRateInherited(), ); } return new Response(json_encode($data)); } }