src/Controller/BalanceController.php line 32

  1. <?php
  2. namespace App\Controller;
  3. use App\Balance\BalanceRefillAmountEnum;
  4. use App\Balance\BalanceService;
  5. use App\Form\BalanceRefillAmountType;
  6. use App\UserService;
  7. use App\Util\Formatter;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. #[Route('/balance')]
  13. class BalanceController extends AbstractController
  14. {
  15.     #[Route('/'name'app_balance_create'methods'POST')]
  16.     public function create(BalanceService $balanceServiceRequest $request): Response
  17.     {
  18.         $form $this->createForm(BalanceRefillAmountType::class);
  19.         $form->handleRequest($request);
  20.         if ($form->isSubmitted() && $form->isValid()) {
  21.             $t $form->get('refillAmount')->getData();
  22.             $amount BalanceRefillAmountEnum::from($t);
  23.             $balanceService->addToBalance($amount);
  24.         }
  25.         return $this->redirectToRoute('app_home');
  26.     }
  27.     #[Route('/'name'app_balance_index'methods'GET')]
  28.     public function index(BalanceService $balanceServiceUserService $userService): Response
  29.     {
  30.         $balance $balanceService->getBalance();
  31.         $level $userService->getUser()->getTransactionDefaultAmount();
  32.         $countLeft = (int)($balance $level);
  33.         $form $this->createForm(BalanceRefillAmountType::class);
  34.         $data = [
  35.             'balance' => Formatter::formatMoney($balance),
  36.             'level' => Formatter::formatMoney($level),
  37.             'countLeft' => $countLeft,
  38.         ];
  39.         return $this->render('balance/index.html.twig', [
  40.             'form' => $form,
  41.             'data' => $data,
  42.         ]);
  43.     }
  44. }