src/Controller/DefaultController.php line 34

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\AppointmentSchedule;
  4. use App\Entity\EdgeSales;
  5. use App\Entity\EducationUserHistory;
  6. use App\Manager\InvitationCodeManager;
  7. use App\Repository\BrandRepository;
  8. use App\Repository\EdgeSalesRepository;
  9. use App\Repository\EducationQuizResultRepository;
  10. use App\Repository\EducationUserHistoryRepository;
  11. use App\Repository\RewardRepository;
  12. use App\Repository\SubmissionRepository;
  13. use App\Service\Edge\EdgeAPI;
  14. use App\Service\EmailService;
  15. use App\Service\PageService;
  16. use Doctrine\ORM\EntityManagerInterface;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use SymfonyCasts\Bundle\ResetPassword\Model\ResetPasswordToken;
  21. use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
  22. class DefaultController extends AbstractController
  23. {
  24. /**
  25. * @Route("/", name="homepage")
  26. */
  27. public function index(PageService $pageService): Response
  28. {
  29. return $this->render('default/index.html.twig', [
  30. 'controller_name' => 'DefaultController',
  31. 'page' => $pageService->getHomepageHeroPage(),
  32. ]);
  33. }
  34. /**
  35. * @Route("/empty", name="empty")
  36. */
  37. public function empty(): Response
  38. {
  39. return $this->render('default/index.html.twig', [
  40. 'controller_name' => 'DefaultController',
  41. ]);
  42. }
  43. /**
  44. * @Route("/testemail", name="testemail")
  45. */
  46. public function testEmail(
  47. EmailService $emailService,
  48. SubmissionRepository $submissionRepository,
  49. RewardRepository $rewardRepository,
  50. ): Response {
  51. $user = $this->getUser();
  52. $resetToken = (new ResetPasswordToken('test', new \DateTime(), 1));
  53. // $emailService->resetPasswordEmail($user, $resetToken);
  54. //
  55. // $emailService->registrationConfirmation($user);
  56. //
  57. //
  58. // $appointment = (new AppointmentSchedule())
  59. // ->setCompanyName('Name')
  60. // ->setContactPersonName('Name')
  61. // ->setCompanyWebsite('Name')
  62. // ->setContactEmail('admin@studioxmedia.com')
  63. // ->setContactPhone('Name')
  64. // ->setAbout('Name')
  65. // ->setComment('Name');
  66. // $emailService->sendAppointmentScheduleNotification($appointment);
  67. $rewards = $rewardRepository->findAll();
  68. $emailService->rewardPaid($rewards[0]);
  69. return $this->render('default/index.html.twig', [
  70. 'controller_name' => 'DefaultController',
  71. ]);
  72. }
  73. /**
  74. * @Route("/test/code", name="testcdde")
  75. */
  76. public function testCode(InvitationCodeManager $invitationCodeManager, BrandRepository $brandRepository): Response
  77. {
  78. foreach ($brandRepository->findAll() as $brand) {
  79. dump($invitationCodeManager->generateCode($brand));
  80. }
  81. exit;
  82. }
  83. /**
  84. * @Route("/test/edge", name="testedge")
  85. */
  86. public function testEdge(
  87. EdgeAPI $edgeAPI,
  88. EdgeSalesRepository $edgeSalesRepository,
  89. EntityManagerInterface $entityManager,
  90. ): Response {
  91. $operationKey = $edgeAPI->requestSalesForVendorClients();
  92. dump($operationKey);
  93. $requestCompleted = false;
  94. $attempts = 1;
  95. while (false === $requestCompleted && $attempts <= 25) {
  96. $requestCompleted = $edgeAPI->isSalesForVendorClientsComplete($operationKey);
  97. dump(sprintf('%s - %s', $attempts, $requestCompleted ? 'Completed' : ' Not Completed'));
  98. ++$attempts;
  99. sleep(1);
  100. }
  101. if ($requestCompleted) {
  102. dump('get sales');
  103. $sales = $edgeAPI->getSalesForVendorClientsResults($operationKey);
  104. foreach ($sales->APIVendorSale as $sale) {
  105. dump($sale->SaleID);
  106. $edgeSale = $edgeSalesRepository->findOneBy(['externalId' => $sale->SaleID]);
  107. if (!$edgeSale) {
  108. $edgeSale = (new EdgeSales())
  109. ->setExternalId($sale->SaleID)
  110. ->setData((array) $sale);
  111. $this->addFlash('success', sprintf('Added sale %s', $sale->SaleID));
  112. $entityManager->persist($edgeSale);
  113. }
  114. $entityManager->flush();
  115. }
  116. }
  117. exit;
  118. return $this->render('default/index.html.twig', [
  119. 'controller_name' => 'DefaultController',
  120. ]);
  121. }
  122. /**
  123. * @Route("/test/checkeducationquizandhistory", name="checkeducationquizandhistory")
  124. */
  125. public function checkeducationquizandhistory(
  126. EducationQuizResultRepository $educationQuizResultRepository,
  127. EducationUserHistoryRepository $educationUserHistoryRepository,
  128. EntityManagerInterface $entityManager,
  129. UploaderHelper $uploaderHelper,
  130. ): Response {
  131. $quizResults = $educationQuizResultRepository->findAll();
  132. foreach ($quizResults as $quizResult) {
  133. $educationUserHistory = $educationUserHistoryRepository->findOneBy([
  134. 'user' => $quizResult->getUser(),
  135. 'education' => $quizResult->getEducation(),
  136. ]);
  137. if (!$educationUserHistory) {
  138. $educationUserHistory = new EducationUserHistory();
  139. $educationUserHistory
  140. ->setUser($quizResult->getUser())
  141. ->setEducation($quizResult->getEducation())
  142. ->setDuration(0)
  143. ->setPlayedDuration(0);
  144. $entityManager->persist($educationUserHistory);
  145. $this->addFlash('success', sprintf(
  146. 'Added watch history to %s for video %s',
  147. $quizResult->getUser()->getFullName(),
  148. $quizResult->getEducation()->getName(),
  149. ));
  150. }
  151. }
  152. $entityManager->flush();
  153. return $this->render('default/index.html.twig', [
  154. 'controller_name' => 'DefaultController',
  155. ]);
  156. }
  157. }