Example #1
0
 /**
  * @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)));
 }