|
@@ -20,7 +20,7 @@ use FOS\RestBundle\Controller\Annotations\Get;
|
|
*/
|
|
*/
|
|
class CablemodemRESTController extends RESTController
|
|
class CablemodemRESTController extends RESTController
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @return string Retorna el nombre de la Entity de trabajo.
|
|
* @return string Retorna el nombre de la Entity de trabajo.
|
|
*/
|
|
*/
|
|
@@ -36,7 +36,7 @@ class CablemodemRESTController extends RESTController
|
|
{
|
|
{
|
|
return get_class(new CablemodemType());
|
|
return get_class(new CablemodemType());
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* GET Route annotation.
|
|
* GET Route annotation.
|
|
* @Get("/cablemodem/{id}/apply/{workflow}/{transition}")
|
|
* @Get("/cablemodem/{id}/apply/{workflow}/{transition}")
|
|
@@ -44,8 +44,8 @@ class CablemodemRESTController extends RESTController
|
|
*
|
|
*
|
|
* @param Request $request
|
|
* @param Request $request
|
|
* @param $id
|
|
* @param $id
|
|
- * @param $transition
|
|
|
|
* @param $workflow
|
|
* @param $workflow
|
|
|
|
+ * @param $transition
|
|
*
|
|
*
|
|
* @return Response
|
|
* @return Response
|
|
*/
|
|
*/
|
|
@@ -68,15 +68,78 @@ class CablemodemRESTController extends RESTController
|
|
if (count($errors) > 0) {
|
|
if (count($errors) > 0) {
|
|
$errorsString = (string) $errors;
|
|
$errorsString = (string) $errors;
|
|
$tenancyService->enableFilter();
|
|
$tenancyService->enableFilter();
|
|
|
|
+
|
|
return FOSView::create($errorsString, Codes::HTTP_INTERNAL_SERVER_ERROR);
|
|
return FOSView::create($errorsString, Codes::HTTP_INTERNAL_SERVER_ERROR);
|
|
} else {
|
|
} else {
|
|
$em->persist($entity);
|
|
$em->persist($entity);
|
|
$em->flush($entity);
|
|
$em->flush($entity);
|
|
$tenancyService->enableFilter();
|
|
$tenancyService->enableFilter();
|
|
|
|
+
|
|
return $entity;
|
|
return $entity;
|
|
}
|
|
}
|
|
} catch (\Exception $e) {
|
|
} catch (\Exception $e) {
|
|
return FOSView::create($e->getMessage(), Codes::HTTP_INTERNAL_SERVER_ERROR);
|
|
return FOSView::create($e->getMessage(), Codes::HTTP_INTERNAL_SERVER_ERROR);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * GET Route annotation.
|
|
|
|
+ * @Get("/client/{id}/apply/{transition}")
|
|
|
|
+ * @View(statusCode=201, serializerEnableMaxDepthChecks=true)
|
|
|
|
+ *
|
|
|
|
+ * @param Request $request
|
|
|
|
+ * @param $id
|
|
|
|
+ * @param $transition
|
|
|
|
+ *
|
|
|
|
+ * @return Response
|
|
|
|
+ */
|
|
|
|
+ public function clientAction(Request $request, Int $id, String $transition)
|
|
|
|
+ {
|
|
|
|
+ try {
|
|
|
|
+ $tenancyService = $this->getTenancyService();
|
|
|
|
+ $tenancyService->disableFilter();
|
|
|
|
+
|
|
|
|
+ $em = $this->container->get("doctrine.orm.entity_manager");
|
|
|
|
+
|
|
|
|
+ $query = $em->createQuery("
|
|
|
|
+ SELECT cm FROM CablemodemBundle:Cablemodem cm
|
|
|
|
+ WHERE cm.administrativeState != :transition
|
|
|
|
+ AND cm.clientId = :client
|
|
|
|
+ ")->setParameters([
|
|
|
|
+ 'transition' => $transition,
|
|
|
|
+ 'client' => $id,
|
|
|
|
+ ]);
|
|
|
|
+ $cablemodems = $query->getResult();
|
|
|
|
+
|
|
|
|
+ $tenancyService->enableFilter();
|
|
|
|
+
|
|
|
|
+ $cmd_args = [
|
|
|
|
+ 'entity' => '--entity:CablemodemBundle\\Entity\\Cablemodem',
|
|
|
|
+ 'workflow' => '--workflow:administrative_state',
|
|
|
|
+ 'transition' => "--transition:{$transition}",
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ $macs = [];
|
|
|
|
+ if ($cablemodems) {
|
|
|
|
+ foreach ($cablemodems as $cablemodem) {
|
|
|
|
+ $cablemodemId = $cablemodem->getId();
|
|
|
|
+ $cmd_args['id'] = "--id:{$cablemodemId}";
|
|
|
|
+ $macs[$cablemodemId] = $cablemodem->getMac();
|
|
|
|
+
|
|
|
|
+ $this->runCommand('workflow:apply', $cmd_args);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return array(
|
|
|
|
+ 'client' => $id,
|
|
|
|
+ 'transition' => $transition,
|
|
|
|
+ 'count' => count($cablemodems),
|
|
|
|
+ 'cablemodems' => $macs,
|
|
|
|
+ );
|
|
|
|
+ } catch (\Exception $e) {
|
|
|
|
+ return FOSView::create($e->getMessage(), Codes::HTTP_INTERNAL_SERVER_ERROR);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|