src/Controller/DefaultController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\AuthUserRepository;
  4. use App\Repository\Csb\UserCsbRepository;
  5. use App\Repository\Treezor\Wallet\WalletRepository;
  6. use App\Security\EmailVerifier;
  7. use App\Service\App\ApiResponseService;
  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. use Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface;
  13. use Symfony\Contracts\HttpClient\Exception\DecodingExceptionInterface;
  14. use Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface;
  15. use Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface;
  16. use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
  17. use SymfonyCasts\Bundle\VerifyEmail\Exception\VerifyEmailExceptionInterface;
  18. class DefaultController extends AbstractController
  19. {
  20.     /** @Route("/{reactRouting}", name="home", defaults={"reactRouting": null}) */
  21.     public function index(): Response
  22.     {
  23.         return $this->render('default/index.html.twig');
  24.     }
  25. //    /** @Route("/v2/{reactRouting}", name="home", defaults={"reactRouting": null}) */
  26. //    public function v2(): Response
  27. //    {
  28. //        return $this->render('default/v2.html.twig');
  29. //    }
  30.     /**
  31.      * @Route("/api/verifyemail", name="api_verifyEmail")
  32.      * @param Request $request
  33.      * @param AuthUserRepository $authUserRepository
  34.      * @param ApiResponseService $apiResponseService
  35.      * @param EmailVerifier $emailVerifier
  36.      * @return Response
  37.      * @deprecated to be removed in next version.
  38.      * @throws ClientExceptionInterface
  39.      * @throws DecodingExceptionInterface
  40.      * @throws RedirectionExceptionInterface
  41.      * @throws ServerExceptionInterface
  42.      * @throws TransportExceptionInterface
  43.      */
  44.     public function verifyUserEmail(
  45.         Request            $request,
  46.         AuthUserRepository $authUserRepository,
  47.         ApiResponseService $apiResponseService,
  48.         EmailVerifier      $emailVerifier
  49.     ): Response
  50.     {
  51.         $id $request->get('q');
  52.         if (null === $id) {
  53.             return $apiResponseService->getAccessDeniedResponse();
  54.         }
  55.         $user $authUserRepository->find($id);
  56.         if (null === $user) {
  57.             return $apiResponseService->getAccessDeniedResponse();
  58.         }
  59.         try {
  60.             $emailVerifier->handleEmailConfirmation($request$user);
  61.         } catch (VerifyEmailExceptionInterface $exception) {
  62.             return $apiResponseService->getCustomResponse(
  63.                 false,
  64.                 Response::HTTP_NOT_ACCEPTABLE,
  65.                 $exception->getReason()
  66.             );
  67.         }
  68.         return $this->redirect($this->generateUrl('home'));
  69.     }
  70.     /**
  71.      * @Route("/api/admin/dashboardWidget", name="api_admin_dashboardWidget")
  72.      */
  73.     public function dashboardWidget(UserCsbRepository $userCsbRepositoryWalletRepository $walletRepository): Response
  74.     {
  75.         $userWithKycReview $userCsbRepository->count(['kycReview' => !null]);
  76.         $userWithoutKycReview $userCsbRepository->count(['kycReview' => null]);
  77.         $localUsers $userCsbRepository->count(['userId' => null]);
  78.         $AllUsers $userWithKycReview $userWithoutKycReview;
  79.         $PendingWallets $walletRepository->count(['walletStatus' => 'PENDING']);
  80.         $ValidatedWallets $walletRepository->count(['walletStatus' => 'VALIDATED']);
  81.         $canceledWallets $walletRepository->count(['walletStatus' => 'CANCELED']);
  82.         $AllWallets $PendingWallets $ValidatedWallets $canceledWallets;
  83.         $ElecMonyWallet $walletRepository->count(['walletTypeId' => 9]);
  84.         $PayAccountWallet $walletRepository->count(['walletTypeId' => 10]);
  85.         return $this->json([
  86.             'countAllUsers' => $AllUsers,
  87.             'userWithKycReview' => $userWithKycReview,
  88.             'userWithoutKycReview' => $userWithoutKycReview,
  89.             'localUsers' => $localUsers,
  90.             'PendingWallets' => $PendingWallets,
  91.             'ValidatedWallets' => $ValidatedWallets,
  92.             'canceledWallets' => $canceledWallets,
  93.             'AllWallets' => $AllWallets,
  94.             'ElecMonyWallet' => $ElecMonyWallet,
  95.             'PayAccountWallet' => $PayAccountWallet
  96.         ], Response::HTTP_OK);
  97.     }
  98. }