/** * @Route("/set-step-guid/{id}/{stepNumber}", name="message_set_step_guid") * * @param Request $request * @param Message $message * @param integer $stepNumber * * @throws \Exception * * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function setStepGuidAction(Request $request, Message $message, $stepNumber) { $guid = $request->get('guid'); $newGuid = $request->get('new-guid-value'); if (!$guid) { $this->get('session')->getFlashBag()->add('error', 'Error setting GUID. Form is not valid.'); return $this->redirect($request->headers->get('referer')); } if ($guid == 'new-guid') { if ($newGuid) { $guid = $newGuid; } else { $this->get('session')->getFlashBag()->add('error', 'Please provide new GUID value.'); return $this->redirect($request->headers->get('referer')); } } $em = $this->getDoctrine()->getManager(); $message->changeStepParameter($stepNumber, 'GUID', $guid); $message->batchChangeStepStatuses(null, 'New'); $message->setFlowStatus('New'); $em->persist($message); $em->flush(); $this->get('session')->getFlashBag()->add('success', 'GUID set successfully in step number ' . $stepNumber); return $this->redirect($request->headers->get('referer')); }
public function testBatchChangeStepStatuses() { $message = new Message(); $message->setFlow(json_encode([1 => array('Module' => 'Account', 'GUID' => 'guid-step-1', 'Datamap' => 'example_datamap', 'Status' => 'Done', 'ErrorID' => null), 2 => array('Module' => 'Opportunity', 'GUID' => 'guid-step-2', 'Datamap' => 'example_datamap', 'Status' => 'Done', 'ErrorID' => null), 3 => array('Module' => 'Opportunity', 'GUID' => 'guid-step-3', 'Datamap' => 'example_datamap', 'Status' => 'In progress', 'ErrorID' => null), 4 => array('Module' => 'Relation', 'GUID' => '', 'SourceModule' => 'Opportunities', 'DestinationModule' => 'Opportunities', 'SourceStep' => 1, 'DestinationStep' => 2, 'Status' => 'New', 'ErrorID' => null)])); $message->batchChangeStepStatuses('Done', 'New'); $steps = $message->getStepsArray(); $this->assertEquals('New', $steps[1]['Status']); $this->assertEquals('New', $steps[2]['Status']); $this->assertEquals('In progress', $steps[3]['Status']); $this->assertEquals('New', $steps[4]['Status']); }