/** * @param Bill $bill * @return JsonResponse */ public function payAction(Bill $bill) { try { $command = new PayBillCommand($bill); $this->commandBus->execute($command); return new JsonResponse(['bill' => $bill->getId(), 'has_been_paid' => $bill->hasBeenPaid()]); } catch (BillAlreadyPaidException $e) { throw new HttpException(409, $e->getMessage(), $e); } }
/** * @param Request $request * @return RedirectResponse|Response */ public function processAccountCreationAction(Request $request) { $form = $this->createAccountForm(); $form->handleRequest($request); if ($form->isValid()) { $this->commandBus->execute($form->getData()); return new RedirectResponse($this->urlGenerator->generate('hclabs_bills.dashboard_controller.index')); } return $this->getFormResponse($form); }
/** * @param AccountWasOpenedEvent $e */ public function onAccountOpened(AccountWasOpenedEvent $e) { $command = new CreateBillsForAccountCommand($e->getAccount()); $this->commandBus->execute($command); }