/** * @ParamConverter("build", options={"mapping": {"meta": "meta", "branch": "branch", "build": "version"}, "repository_method" = "findOneWithParents"}) */ public function processFinaliseAction(Request $request, Build $build) { $branch = $build->getBranch(); $meta = $branch->getMeta(); if ($build->getState() == Build::PROCESSING && $build->getConverterTicket() !== null) { $ks = $this->container->get('hlpnebula.knossos'); $ksresponse = $ks->retrieveConverted($build->getConverterTicket(), $build->getConverterToken()); if ($ksresponse) { if ($ksresponse->finished == true) { if ($ksresponse->success == true) { $build->setGeneratedJSON($ksresponse->json); $build->setState(Build::DONE); $request->getSession()->getFlashBag()->add('success', "Build <strong>version " . $build->getVersion() . "</strong> has been successfully validated."); } else { $build->setState(Build::FAILED); $request->getSession()->getFlashBag()->add('warning', "Build <strong>version " . $build->getVersion() . "</strong> validation has failed."); } $this->getDoctrine()->getManager()->flush(); } else { return $this->redirect($this->generateUrl('hlp_nebula_process', array('meta' => $meta, 'branch' => $branch, 'build' => $build))); } } else { return $this->render('HLPNebulaBundle:Build:process.html.twig', array('meta' => $meta, 'branch' => $branch, 'build' => $build, 'is_owner' => $this->isGranted('EDIT', $meta), 'request_failed' => true)); } } if ($request->getMethod() == 'POST') { $response = new Response(json_encode(array('cancelled' => $build->getState() == Build::FAILED))); $response->headers->set('Content-Type', 'application/json'); return $response; } return $this->redirect($this->generateUrl('hlp_nebula_build', array('meta' => $meta, 'branch' => $branch, 'build' => $build))); }