1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace FTTHBundle\Controller\REST;
- use FOS\RestBundle\Controller\Annotations\RouteResource;
- use FOS\RestBundle\Controller\Annotations\View;
- use FOS\RestBundle\View\View as FOSView;
- use FTTHBundle\Form\ProfileType;
- use Symfony\Component\HttpFoundation\Request;
- use WebserviceBundle\Controller\RESTController;
- use FOS\RestBundle\Controller\Annotations as Rest;
- /**
- * Profile controller.
- * @RouteResource("Profile")
- */
- class ProfileRESTController extends RESTController
- {
- /**
- * @return string Retorna el nombre de la Entity de trabajo.
- */
- public function getRepository()
- {
- return 'FTTHBundle:Profile';
- }
- /**
- * @return string Retorna el tipo de la clase.
- */
- public function getFormEntityType()
- {
- return get_class(new ProfileType());
- }
- /**
- * Create a entity.
- *
- * @View(statusCode=201, serializerEnableMaxDepthChecks=true)
- *
- * @param Request $request Contiene el request.
- * @Rest\Post
- * @return FOSView|mixed Retorna el FOSView o la entidad.
- */
- public function migrateProfileAction(Request $request)
- {
- $values = $request->request->all();
- // deshabilito la tenencia
- $tenancyService = $this->getTenancyService();
- if (empty($values['tenancy'])) {
- $tenancyService->setTenancy(1);
- } else {
- $tenancyService->setTenancy($values['tenancy']);
- }
- $criteria = new \Doctrine\Common\Collections\Criteria();
- $criteria->andWhere($criteria->expr()->eq("name", $values['name']));
- $em = $this->getDoctrine()->getManager();
- $repo = $em->getRepository($this->getRepository());
- $entities = $repo->matching($criteria)->toArray();
- if (count($entities) > 0 && $entities[0]) {
- // la entidad existe por lo tanto la actualizo
- $resp = $this->putAction($request, $entities[0]);
- } else {
- // la entidad no existe, entonces la creo
- // deshabilito el auto increment del id
- $resp = $this->postAction($request);
- }
- return $resp;
- }
- }
|