src/Controller/Website/ServiceController.php line 1711

Open in your IDE?
  1. <?php
  2. namespace EADPlataforma\Controller\Website;
  3. use EADPlataforma\Error\ActionInvalidException;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use EADPlataforma\Error\AuthInvalidException;
  9. use EADPlataforma\Error\FieldException;
  10. use EADPlataforma\Response\HttpOk;
  11. use EADPlataforma\Entity\Configuration;
  12. use EADPlataforma\Entity\Course;
  13. use EADPlataforma\Entity\Lesson;
  14. use EADPlataforma\Entity\Receiver;
  15. use EADPlataforma\Entity\Transaction;
  16. use EADPlataforma\Entity\UserNotify;
  17. use EADPlataforma\Enum\ServicesEnum;
  18. use EADPlataforma\Enum\ClientEnum;
  19. use EADPlataforma\Enum\CourseEnum;
  20. use EADPlataforma\Enum\ConfigurationEnum;
  21. use EADPlataforma\Enum\ContentTypeEnum;
  22. use EADPlataforma\Enum\ErrorEnum;
  23. /**
  24.  * @Route(
  25.  *      schemes         = {"http|https"}
  26.  * )
  27.  * @Cache(
  28.  *      maxage          = "0",
  29.  *      smaxage         = "0",
  30.  *      expires         = "now",
  31.  *      public          = false
  32.  * )
  33.  */
  34. class ServiceController extends AbstractWebsiteController {
  35.     /**
  36.      * @Route(
  37.      *      path = "report/csp",
  38.      *      name = "reportCsp",
  39.      *      methods = {"POST"}
  40.      * )
  41.      */
  42.     public function reportCsp(Request $request): Response
  43.     {
  44.         if($request->headers->get('Content-Type') != ContentTypeEnum::CSP_REPORT){
  45.             return new Response('Invalid CSP Report'Response::HTTP_BAD_REQUEST);
  46.         }
  47.         $content $request->getContent();
  48.         $data json_decode($contenttrue);
  49.         if(isset($data['csp-report'])){
  50.             $dataStr "**REPORT**: {$data['csp-report']['document-uri']} \n";
  51.             unset($data['csp-report']['original-policy']);
  52.             unset($data['csp-report']['document-uri']);
  53.             unset($data['csp-report']['referrer']);
  54.             foreach ($data['csp-report'] as $key => $value) {
  55.                 $dataStr .= "{$key}{$value} \n";
  56.             }
  57.             $discordService $this->generalService->getService('DiscordService');
  58.             $discordService->setChannel('debug-csp');
  59.             $discordService->setMessage($dataStr);
  60.             $discordService->sendDiscord();
  61.             return new Response(nullResponse::HTTP_NO_CONTENT);
  62.         }
  63.         return new Response('Invalid CSP Report'Response::HTTP_BAD_REQUEST);
  64.     }
  65.     /**
  66.      * @Route(
  67.      *      path = "notify/auth",
  68.      *      name = "registerNotifyAuth",
  69.      *      methods = {"POST"}
  70.      * )
  71.      */
  72.     public function registerNotifyAuth(Request $request): Response
  73.     {
  74.         if(!$this->user){
  75.             return new Response('User not found'Response::HTTP_BAD_REQUEST);
  76.         }
  77.         $content $request->getContent();
  78.         $data json_decode($contenttrue);
  79.         if(
  80.             isset($data['endpoint']) && 
  81.             isset($data['platform']) && 
  82.             isset($data['token']) && 
  83.             isset($data['auth'])
  84.         ){
  85.             $userNotify $this->em->getRepository(UserNotify::class)->findOneBy([
  86.                 "endpoint" => $data['endpoint'],
  87.                 "token" => $data['token'],
  88.                 "platform" => $data['platform'],
  89.                 "auth" => $data['auth'],
  90.             ]);
  91.             if($userNotify){
  92.                 if($userNotify->getUser()->getId() != $this->user->getId()){
  93.                     $userNotify->setUser($this->user);
  94.                     $this->em->flush();
  95.                 }
  96.                 return new Response(nullResponse::HTTP_NO_CONTENT);
  97.             }
  98.            
  99.             $userNotify = new UserNotify();
  100.             $userNotify->setUser($this->user);
  101.             $userNotify->setEndpoint($data['endpoint']);
  102.             $userNotify->setToken($data['token']);
  103.             $userNotify->setAuth($data['auth']);
  104.             $userNotify->setPlatform($data['platform']);
  105.             $this->em->persist($userNotify);
  106.             $this->em->flush();
  107.             return new Response(nullResponse::HTTP_NO_CONTENT);
  108.         }
  109.         return new Response('Invalid notify data'Response::HTTP_BAD_REQUEST);
  110.     }
  111.     /**
  112.      * @Route(
  113.      *      path    = "cart/RequestEadCheckout/",
  114.      *      name = "processDataEadCheckoutBar",
  115.      *      methods = {"GET","POST","PUT"}
  116.      * )
  117.      * @Route(
  118.      *      path    = "cart/RequestEadCheckout",
  119.      *      name = "processDataEadCheckout",
  120.      *      methods = {"GET","POST","PUT"}
  121.      * )
  122.      */
  123.     public function processDataEadCheckout(Request $request) {
  124.         $processEad $this->generalService->getService('Transaction\\ProcessEad');
  125.         $pagarMe $this->generalService->getService('PagarMe\\PagarMe');
  126.         $this->requestUtil->setRequest($request)->setData();
  127.         $postbackPayload $request->getContent();
  128.         $data = (object)$this->requestUtil->getData();
  129.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  130.         $host $request->headers->get('host');
  131.         if(stristr($host"doubleh")){
  132.             $debug true;
  133.         }
  134.         $discordService $this->generalService->getService('DiscordService');
  135.         $discordService->setChannel('debug');
  136.         
  137.         if($debug){
  138.             $discordService->setMessage("EAD Checkout - Start");
  139.             $discordService->sendDiscord();
  140.             $discordService->setMessage(json_encode($data));
  141.             $discordService->sendDiscord();
  142.         }
  143.         sleep(rand(15));
  144.         $processEad->setDebug($debug);
  145.         if($pagarMe->isPostValid($request) && isset($data->transaction['id'])){
  146.             try{
  147.                 $processEad->processTransactionEAD($data->transaction['id']);
  148.             } catch (\Exception $e) {
  149.                 if($debug){
  150.                     $discordService->setMessage($e->getMessage());
  151.                     $discordService->sendDiscord();
  152.                 }
  153.                 return $this->eadResponse([
  154.                     "success" => ErrorEnum::NO,
  155.                     "message" => $e->getMessage(),
  156.                 ], ErrorEnum::INTERNAL_ERRORtruetrue);
  157.             }
  158.         }else{
  159.             return $this->eadResponse([
  160.                 "success" => ErrorEnum::NO
  161.             ], ErrorEnum::AUTH_INVALIDtruetrue);
  162.         }
  163.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  164.     }
  165.     /**
  166.      * @Route(
  167.      *      path = "hotmart/",
  168.      *      name = "processDataHotmartBar",
  169.      *      methods = {"GET","POST","PUT"}
  170.      * )
  171.      * @Route(
  172.      *      path = "hotmart",
  173.      *      name = "processDataHotmart",
  174.      *      methods = {"GET","POST","PUT"}
  175.      * )
  176.      */
  177.     public function processDataHotmart(Request $request) {
  178.         $processHotmart $this->generalService->getService('Transaction\\ProcessHotmart');
  179.         $this->requestUtil->setRequest($request)->setData();
  180.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  181.         $discordService $this->generalService->getService('DiscordService');
  182.         $discordService->setChannel('debug');
  183.         
  184.         $data = (object)$this->requestUtil->getData();
  185.         if($debug){
  186.             $discordService->setMessage("Hotmart - Start");
  187.             $discordService->sendDiscord();
  188.             $discordService->setMessage(json_encode($data));
  189.             $discordService->sendDiscord();
  190.         }
  191.         sleep(rand(15));
  192.         $processHotmart->setDebug($debug);
  193.         try{
  194.             $processHotmart->processTransactionHotmart($data);
  195.         } catch (\Exception $e) {
  196.             if($debug){
  197.                 $discordService->setMessage($e->getMessage());
  198.                 $discordService->sendDiscord();
  199.             }
  200.             return $this->eadResponse([
  201.                 "success" => ErrorEnum::NO,
  202.                 "message" => $e->getMessage(),
  203.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  204.         }
  205.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  206.     }
  207.     /**
  208.      * @Route(
  209.      *      path = "paypal/",
  210.      *      name = "processDataPayPalBar",
  211.      *      methods = {"GET","POST","PUT"}
  212.      * )
  213.      * @Route(
  214.      *      path = "paypal",
  215.      *      name = "processDataPayPal",
  216.      *      methods = {"GET","POST","PUT"}
  217.      * )
  218.      */
  219.     public function processDataPayPal(Request $request) {
  220.         $processPayPal $this->generalService->getService('Transaction\\ProcessPayPal');
  221.         $payPal $this->generalService->getService('PayPal\\PayPal');
  222.         $this->requestUtil->setRequest($request)->setData();
  223.         
  224.         $data $this->requestUtil->getData();
  225.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  226.         $discordService $this->generalService->getService('DiscordService');
  227.         $discordService->setChannel('debug');
  228.         if($debug){
  229.             $discordService->setMessage("Paypal - Start");
  230.             $discordService->sendDiscord();
  231.             $discordService->setMessage(json_encode((object)$data));
  232.             $discordService->sendDiscord();
  233.         }
  234.         sleep(rand(15));
  235.         $processPayPal->setDebug($debug);
  236.         try{
  237.             if($payPal->isPostValid($data)){
  238.                 $processPayPal->processTransactionPayPal((object)$data);
  239.             }
  240.         } catch (\Exception $e) {
  241.             if($debug){
  242.                 $discordService->setMessage($e->getMessage());
  243.                 $discordService->sendDiscord();
  244.             }
  245.             return $this->eadResponse([
  246.                 "success" => ErrorEnum::NO,
  247.                 "message" => $e->getMessage(),
  248.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  249.         }
  250.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  251.     }
  252.     /**
  253.      * @Route(
  254.      *      path = "pagseguro/",
  255.      *      name = "processDataPagSeguroBar",
  256.      *      methods = {"GET","POST","PUT"}
  257.      * )
  258.      * @Route(
  259.      *      path = "pagseguro",
  260.      *      name = "processDataPagSeguro",
  261.      *      methods = {"GET","POST","PUT"}
  262.      * )
  263.      */
  264.     public function processDataPagSeguro(Request $request) {
  265.         $processPagSeguro $this->generalService->getService('Transaction\\ProcessPagSeguro');
  266.         $pagSeguro $this->generalService->getService('PagSeguro\\PagSeguro');
  267.         $this->requestUtil->setRequest($request)->setData();
  268.         
  269.         $data $this->requestUtil->getData();
  270.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  271.         $discordService $this->generalService->getService('DiscordService');
  272.         $discordService->setChannel('debug');
  273.         if($debug){
  274.             $discordService->setMessage("Pagseguro - Start");
  275.             $discordService->sendDiscord();
  276.             $discordService->setMessage(json_encode((object)$data));
  277.             $discordService->sendDiscord();
  278.         }
  279.         sleep(rand(15));
  280.         $processPagSeguro->setDebug($debug);
  281.         
  282.         try{
  283.             if($pagSeguro->isPostValid($data)){
  284.                 $processPagSeguro->processTransactionPagSeguro((object)$data);
  285.             }
  286.         } catch (\Exception $e) {
  287.             if($debug){
  288.                 $discordService->setMessage($e->getMessage());
  289.                 $discordService->sendDiscord();
  290.             }
  291.             return $this->eadResponse([
  292.                 "success" => ErrorEnum::NO,
  293.                 "message" => $e->getMessage(),
  294.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  295.         }
  296.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  297.     }
  298.     /**
  299.      * @Route(
  300.      *      path = "eduzz/",
  301.      *      name = "processDataEduzzBar",
  302.      *      methods = {"GET","POST","PUT"}
  303.      * )
  304.      * @Route(
  305.      *      path = "eduzz",
  306.      *      name = "processDataEduzz",
  307.      *      methods = {"GET","POST","PUT"}
  308.      * )
  309.      */
  310.     public function processDataEduzz(Request $request) {
  311.         $processEduzz $this->generalService->getService('Transaction\\ProcessEduzz');
  312.         $this->requestUtil->setRequest($request)->setData();
  313.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  314.         $data = (object)$this->requestUtil->getData();
  315.         $discordService $this->generalService->getService('DiscordService');
  316.         $discordService->setChannel('debug');
  317.         if($debug){
  318.             $discordService->setMessage("Eduzz - Start");
  319.             $discordService->sendDiscord();
  320.             $discordService->setMessage(json_encode($data));
  321.             $discordService->sendDiscord();
  322.         }
  323.         sleep(rand(15));
  324.         $processEduzz->setDebug($debug);
  325.         try{
  326.             $processEduzz->processTransactionEduzz($data);
  327.         } catch (\Exception $e) {
  328.             if($debug){
  329.                 $discordService->setMessage($e->getMessage());
  330.                 $discordService->sendDiscord();
  331.             }
  332.             return $this->eadResponse([
  333.                 "success" => ErrorEnum::NO,
  334.                 "message" => $e->getMessage(),
  335.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  336.         }
  337.         
  338.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  339.     }
  340.     /**
  341.      * @Route(
  342.      *      path = "provi/",
  343.      *      name = "processDataProviBar",
  344.      *      methods = {"GET","POST","PUT"}
  345.      * )
  346.      * @Route(
  347.      *      path = "provi",
  348.      *      name = "processDataProvi",
  349.      *      methods = {"GET","POST","PUT"}
  350.      * )
  351.      */
  352.     public function processDataProvi(Request $request) {
  353.         $processProvi $this->generalService->getService('Transaction\\ProcessProvi');
  354.         $this->requestUtil->setRequest($request)->setData(true);
  355.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  356.         $data = (object)$this->requestUtil->getData();
  357.         $discordService $this->generalService->getService('DiscordService');
  358.         $discordService->setChannel('debug');
  359.         if($debug){
  360.             $discordService->setMessage("Provi - Start");
  361.             $discordService->sendDiscord();
  362.             $discordService->setMessage(json_encode($data));
  363.             $discordService->sendDiscord();
  364.         }
  365.         sleep(rand(15));
  366.         $processProvi->setDebug($debug);
  367.         try{
  368.             $processProvi->processTransactionProvi($data);
  369.         } catch (\Exception $e) {
  370.             if($debug){
  371.                 $discordService->setMessage($e->getMessage());
  372.                 $discordService->sendDiscord();
  373.             }
  374.             return $this->eadResponse([
  375.                 "success" => ErrorEnum::NO,
  376.                 "message" => $e->getMessage(),
  377.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  378.         }
  379.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  380.     }
  381.     /**
  382.      * @Route(
  383.      *      path = "braip/",
  384.      *      name = "processDataBraipBar",
  385.      *      methods = {"GET","POST","PUT"}
  386.      * )
  387.      * @Route(
  388.      *      path = "braip",
  389.      *      name = "processDataBraip",
  390.      *      methods = {"GET","POST","PUT"}
  391.      * )
  392.      */
  393.     public function processDataBraip(Request $request) {
  394.         $processBraip $this->generalService->getService('Transaction\\ProcessBraip');
  395.         $this->requestUtil->setRequest($request)->setData();
  396.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  397.         $data = (object)$this->requestUtil->getData();
  398.         $discordService $this->generalService->getService('DiscordService');
  399.         $discordService->setChannel('debug');
  400.         if($debug){
  401.             $discordService->setMessage("Braip - Start");
  402.             $discordService->sendDiscord();
  403.             $discordService->setMessage(json_encode($data));
  404.             $discordService->sendDiscord();
  405.         }
  406.         sleep(rand(15));
  407.         try{
  408.             $processBraip->processTransactionBraip($data);
  409.         } catch (\Exception $e) {
  410.             if($debug){
  411.                 $discordService->setMessage($e->getMessage());
  412.                 $discordService->sendDiscord();
  413.             }
  414.             return $this->eadResponse([
  415.                 "success" => ErrorEnum::NO,
  416.                 "message" => $e->getMessage(),
  417.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  418.         }
  419.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  420.     }
  421.     /**
  422.      * @Route(
  423.      *      path = "monetizze/",
  424.      *      name = "processDataMonetizzeBar",
  425.      *      methods = {"GET","POST","PUT"}
  426.      * )
  427.      * @Route(
  428.      *      path = "monetizze",
  429.      *      name = "processDataMonetizze",
  430.      *      methods = {"GET","POST","PUT"}
  431.      * )
  432.      */
  433.     public function processDataMonetizze(Request $request) {
  434.         $processMonetizze $this->generalService->getService('Transaction\\ProcessMonetizze');
  435.         $this->requestUtil->setRequest($request)->setData();
  436.         sleep(rand(15));
  437.         try{
  438.             $debug = (int)$request->get('debug') == ServicesEnum::YES;
  439.             
  440.             $data = (object)$this->requestUtil->getData();
  441.             if(!empty($data->json)){
  442.                 $data json_decode($data->jsontrue);
  443.                 $data = (object)$data;
  444.             }
  445.             $discordService $this->generalService->getService('DiscordService');
  446.             $discordService->setChannel('debug');
  447.             if($debug){
  448.                 $discordService->setMessage("Monetizze - Start");
  449.                 $discordService->sendDiscord();
  450.                 $discordService->setMessage(json_encode($data));
  451.                 $discordService->sendDiscord();
  452.             }
  453.             $processMonetizze->setDebug($debug);
  454.         
  455.             $processMonetizze->processTransactionMonetizze($data);
  456.         }catch (\Exception $e) {
  457.             if($debug){
  458.                 $discordService->setMessage($e->getMessage());
  459.                 $discordService->sendDiscord();
  460.             }
  461.             return $this->eadResponse([
  462.                 "success" => ErrorEnum::NO,
  463.                 "message" => $e->getMessage(),
  464.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  465.         }
  466.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  467.     }
  468.     /**
  469.      * @Route(
  470.      *      path = "kiwify/",
  471.      *      name = "processDataKiwifyBar",
  472.      *      methods = {"GET","POST","PUT"}
  473.      * )
  474.      * @Route(
  475.      *      path = "kiwify",
  476.      *      name = "processDataKiwify",
  477.      *      methods = {"GET","POST","PUT"}
  478.      * )
  479.      */
  480.     public function processDataKiwify(Request $request) {
  481.         $processKiwify $this->generalService->getService('Transaction\\ProcessKiwify');
  482.         $this->requestUtil->setRequest($request)->setData();
  483.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  484.         $data = (object)$this->requestUtil->getData();
  485.         $discordService $this->generalService->getService('DiscordService');
  486.         $discordService->setChannel('debug');
  487.         if($debug){
  488.             $discordService->setMessage("Kiwify - Start");
  489.             $discordService->sendDiscord();
  490.             $discordService->setMessage(json_encode($data));
  491.             $discordService->sendDiscord();
  492.         }
  493.         sleep(rand(15));
  494.         $processKiwify->setDebug($debug);
  495.         try{
  496.             $processKiwify->processTransactionKiwify($data);
  497.         }catch (\Exception $e) {
  498.             if($debug){
  499.                 $discordService->setMessage($e->getMessage());
  500.                 $discordService->sendDiscord();
  501.             }
  502.             return $this->eadResponse([
  503.                 "success" => ErrorEnum::NO,
  504.                 "message" => $e->getMessage(),
  505.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  506.         }
  507.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  508.     }
  509.     /**
  510.      * @Route(
  511.      *      path = "dmguru/",
  512.      *      name = "processDataDigitalManagerGuruBar",
  513.      *      methods = {"GET","POST","PUT"}
  514.      * )
  515.      * @Route(
  516.      *      path = "dmguru",
  517.      *      name = "processDataDigitalManagerGuru",
  518.      *      methods = {"GET","POST","PUT"}
  519.      * )
  520.      */
  521.     public function processDataDigitalManagerGuru(Request $request) {
  522.         $processDigitalManagerGuru $this->generalService->getService(
  523.             'Transaction\\ProcessDigitalManagerGuru'
  524.         );
  525.         $this->requestUtil->setRequest($request)->setData(true);
  526.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  527.         $data = (object)$this->requestUtil->getData();
  528.         $discordService $this->generalService->getService('DiscordService');
  529.         $discordService->setChannel('debug');
  530.         if($debug){
  531.             $discordService->setMessage("Guru - Start");
  532.             $discordService->sendDiscord();
  533.             $discordService->setMessage(json_encode($data));
  534.             $discordService->sendDiscord();
  535.         }
  536.         sleep(rand(15));
  537.         $processDigitalManagerGuru->setDebug($debug);
  538.         try{
  539.             $processDigitalManagerGuru->processTransactionDigitalManagerGuru($data);
  540.         }catch (\Exception $e) {
  541.             if($debug){
  542.                 $discordService->setMessage($e->getMessage());
  543.                 $discordService->sendDiscord();
  544.             }
  545.             return $this->eadResponse([
  546.                 "success" => ErrorEnum::NO,
  547.                 "message" => $e->getMessage(),
  548.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  549.         }
  550.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  551.     }
  552.     /**
  553.      * @Route(
  554.      *      path = "appmax/",
  555.      *      name = "processDataAppMaxBar",
  556.      *      methods = {"GET","POST","PUT"}
  557.      * )
  558.      * @Route(
  559.      *      path = "appmax",
  560.      *      name = "processDataAppMax",
  561.      *      methods = {"GET","POST","PUT"}
  562.      * )
  563.      */
  564.     public function processDataAppMax(Request $request) {
  565.         $processAppMax $this->generalService->getService('Transaction\\ProcessAppMax');
  566.         $this->requestUtil->setRequest($request)->setData(true);
  567.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  568.         $data = (object)$this->requestUtil->getData();
  569.         $discordService $this->generalService->getService('DiscordService');
  570.         $discordService->setChannel('debug');
  571.         if($debug){
  572.             $discordService->setMessage("AppMax - Start");
  573.             $discordService->sendDiscord();
  574.             $discordService->setMessage(json_encode($data));
  575.             $discordService->sendDiscord();
  576.         }
  577.         sleep(rand(15));
  578.         $processAppMax->setDebug($debug);
  579.         try{
  580.             $processAppMax->processTransactionAppMax($data);
  581.         }catch (\Exception $e) {
  582.             if($debug){
  583.                 $discordService->setMessage($e->getMessage());
  584.                 $discordService->sendDiscord();
  585.             }
  586.             return $this->eadResponse([
  587.                 "success" => ErrorEnum::NO,
  588.                 "message" => $e->getMessage(),
  589.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  590.         }
  591.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  592.     }
  593.     /**
  594.      * @Route(
  595.      *      path = "doppus/",
  596.      *      name = "processDataDoppusBar",
  597.      *      methods = {"GET","POST","PUT"}
  598.      * )
  599.      * @Route(
  600.      *      path = "doppus",
  601.      *      name = "processDataDoppus",
  602.      *      methods = {"GET","POST","PUT"}
  603.      * )
  604.      */
  605.     public function processDataDoppus(Request $request) {
  606.         $processDoppus $this->generalService->getService('Transaction\\ProcessDoppus');
  607.         $this->requestUtil->setRequest($request)->setData();
  608.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  609.         $data = (object)$this->requestUtil->getData();
  610.         $discordService $this->generalService->getService('DiscordService');
  611.         $discordService->setChannel('debug');
  612.         if($debug){
  613.             $discordService->setMessage("Doppus - Start");
  614.             $discordService->sendDiscord();
  615.             $discordService->setMessage(json_encode($data));
  616.             $discordService->sendDiscord();
  617.         }
  618.         sleep(rand(15));
  619.         $processDoppus->setDebug($debug);
  620.         try{
  621.             $processDoppus->processTransactionDoppus($data);
  622.         }catch (\Exception $e) {
  623.             if($debug){
  624.                 $discordService->setMessage($e->getMessage());
  625.                 $discordService->sendDiscord();
  626.             }
  627.             return $this->eadResponse([
  628.                 "success" => ErrorEnum::NO,
  629.                 "message" => $e->getMessage(),
  630.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  631.         }
  632.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  633.     }
  634.     /**
  635.      * @Route(
  636.      *      path = "ticto/",
  637.      *      name = "processDataTictoBar",
  638.      *      methods = {"GET","POST","PUT"}
  639.      * )
  640.      * @Route(
  641.      *      path = "ticto",
  642.      *      name = "processDataTicto",
  643.      *      methods = {"GET","POST","PUT"}
  644.      * )
  645.      */
  646.     public function processDataTicto(Request $request) {
  647.         $processTicto $this->generalService->getService('Transaction\\ProcessTicto');
  648.         $this->requestUtil->setRequest($request)->setData();
  649.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  650.         $data = (object)$this->requestUtil->getData();
  651.         $discordService $this->generalService->getService('DiscordService');
  652.         $discordService->setChannel('debug');
  653.         if($debug){
  654.             $discordService->setMessage("Ticto - Start");
  655.             $discordService->sendDiscord();
  656.             $discordService->setMessage(json_encode($data));
  657.             $discordService->sendDiscord();
  658.         }
  659.         sleep(rand(15));
  660.         $processTicto->setDebug($debug);
  661.         try{
  662.             $processTicto->processTransactionTicto($data);
  663.         }catch (\Exception $e) {
  664.             if($debug){
  665.                 $discordService->setMessage($e->getMessage());
  666.                 $discordService->sendDiscord();
  667.             }
  668.             return $this->eadResponse([
  669.                 "success" => ErrorEnum::NO,
  670.                 "message" => $e->getMessage(),
  671.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  672.         }
  673.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  674.     }
  675.     /**
  676.      * @Route(
  677.      *      path = "mercadopago/",
  678.      *      name = "processDataMercadoPagoBar",
  679.      *      methods = {"GET","POST","PUT"}
  680.      * )
  681.      * @Route(
  682.      *      path = "mercadopago",
  683.      *      name = "processDataMercadoPago",
  684.      *      methods = {"GET","POST","PUT"}
  685.      * )
  686.      */
  687.     public function processDataMercadoPago(Request $request) {
  688.         $processMercadoPago $this->generalService->getService(
  689.             'Transaction\\ProcessMercadoPago'
  690.         );
  691.         $mercadoPago $this->generalService->getService('MercadoPago\\MercadoPago');
  692.         $this->requestUtil->setRequest($request)->setData();
  693.         
  694.         $data $this->requestUtil->getData();
  695.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  696.         $discordService $this->generalService->getService('DiscordService');
  697.         $discordService->setChannel('debug');
  698.         if($debug){
  699.             $discordService->setMessage("MercadoPago - Start");
  700.             $discordService->sendDiscord();
  701.             $discordService->setMessage(json_encode((object)$data));
  702.             $discordService->sendDiscord();
  703.         }
  704.         sleep(rand(15));
  705.         $processMercadoPago->setDebug($debug);
  706.         
  707.         try{
  708.             if(!$mercadoPago->isPostValid($data)){
  709.                 throw new ActionInvalidException("Only transaction requests are allowed.");
  710.             }
  711.             $processMercadoPago->processTransactionMercadoPago((object)$data);
  712.         } catch (\Exception $e) {
  713.             if($debug){
  714.                 $discordService->setMessage($e->getMessage());
  715.                 $discordService->sendDiscord();
  716.             }
  717.             return $this->eadResponse([
  718.                 "success" => ErrorEnum::NO,
  719.                 "message" => $e->getMessage(),
  720.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  721.         }
  722.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  723.     }
  724.     /**
  725.      * @Route(
  726.      *      path = "abmex/",
  727.      *      name = "processDataAbmexBar",
  728.      *      methods = {"GET","POST","PUT"}
  729.      * )
  730.      * @Route(
  731.      *      path = "abmex",
  732.      *      name = "processDataAbmex",
  733.      *      methods = {"GET","POST","PUT"}
  734.      * )
  735.      */
  736.     public function processDataAbmex(Request $request) {
  737.         $processAbmex $this->generalService->getService('Transaction\\ProcessAbmex');
  738.         $this->requestUtil->setRequest($request)->setData();
  739.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  740.         $data = (object)$this->requestUtil->getData();
  741.         $discordService $this->generalService->getService('DiscordService');
  742.         $discordService->setChannel('debug');
  743.         if($debug){
  744.             $discordService->setMessage("Abmex - Start");
  745.             $discordService->sendDiscord();
  746.             $discordService->setMessage(json_encode($data));
  747.             $discordService->sendDiscord();
  748.         }
  749.         sleep(rand(15));
  750.         $processAbmex->setDebug($debug);
  751.         try{
  752.             $processAbmex->processTransactionAbmex($data);
  753.         }catch (\Exception $e) {
  754.             if($debug){
  755.                 $discordService->setMessage($e->getMessage());
  756.                 $discordService->sendDiscord();
  757.             }
  758.             return $this->eadResponse([
  759.                 "success" => ErrorEnum::NO,
  760.                 "message" => $e->getMessage(),
  761.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  762.         }
  763.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  764.     }
  765.     /**
  766.      * @Route(
  767.      *      path = "perfectpay/",
  768.      *      name = "processDataPerfectPayBar",
  769.      *      methods = {"GET","POST","PUT"}
  770.      * )
  771.      * @Route(
  772.      *      path = "perfectpay",
  773.      *      name = "processDataPerfectPay",
  774.      *      methods = {"GET","POST","PUT"}
  775.      * )
  776.      */
  777.     public function processDataPerfectPay(Request $request) {
  778.         $processPerfectPay $this->generalService->getService(
  779.             'Transaction\\ProcessPerfectPay'
  780.         );
  781.         $this->requestUtil->setRequest($request)->setData();
  782.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  783.         $data = (object)$this->requestUtil->getData();
  784.         $discordService $this->generalService->getService('DiscordService');
  785.         $discordService->setChannel('debug');
  786.         if($debug){
  787.             $discordService->setMessage("PerfectPay - Start");
  788.             $discordService->sendDiscord();
  789.             $discordService->setMessage(json_encode($data));
  790.             $discordService->sendDiscord();
  791.         }
  792.         sleep(rand(15));
  793.         $processPerfectPay->setDebug($debug);
  794.         try{
  795.             $processPerfectPay->processTransactionPerfectPay($data);
  796.         }catch (\Exception $e) {
  797.             if($debug){
  798.                 $discordService->setMessage($e->getMessage());
  799.                 $discordService->sendDiscord();
  800.             }
  801.             return $this->eadResponse([
  802.                 "success" => ErrorEnum::NO,
  803.                 "message" => $e->getMessage(),
  804.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  805.         }
  806.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  807.     }
  808.     /**
  809.      * @Route(
  810.      *      path = "evermart/",
  811.      *      name = "processDataEvermartBar",
  812.      *      methods = {"GET","POST","PUT"}
  813.      * )
  814.      * @Route(
  815.      *      path = "evermart",
  816.      *      name = "processDataEvermart",
  817.      *      methods = {"GET","POST","PUT"}
  818.      * )
  819.      */
  820.     public function processDataEvermart(Request $request) {
  821.         $processEvermart $this->generalService->getService('Transaction\\ProcessEvermart');
  822.         $this->requestUtil->setRequest($request)->setData();
  823.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  824.         $data = (object)$this->requestUtil->getData();
  825.         $discordService $this->generalService->getService('DiscordService');
  826.         $discordService->setChannel('debug');
  827.         if($debug){
  828.             $discordService->setMessage("Evermart - Start");
  829.             $discordService->sendDiscord();
  830.             $discordService->setMessage(json_encode($data));
  831.             $discordService->sendDiscord();
  832.         }
  833.         sleep(rand(15));
  834.         $processEvermart->setDebug($debug);
  835.         try{
  836.             $processEvermart->processTransactionEvermart($data);
  837.         }catch (\Exception $e) {
  838.             if($debug){
  839.                 $discordService->setMessage($e->getMessage());
  840.                 $discordService->sendDiscord();
  841.             }
  842.             return $this->eadResponse([
  843.                 "success" => ErrorEnum::NO,
  844.                 "message" => $e->getMessage(),
  845.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  846.         }
  847.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  848.     }
  849.     /**
  850.      * @Route(
  851.      *      path = "herospark/",
  852.      *      name = "processDataHeroSparkBar",
  853.      *      methods = {"GET","POST","PUT"}
  854.      * )
  855.      * @Route(
  856.      *      path = "herospark",
  857.      *      name = "processDataHeroSpark",
  858.      *      methods = {"GET","POST","PUT"}
  859.      * )
  860.      */
  861.     public function processDataHeroSpark(Request $request) {
  862.         $processHeroSpark $this->generalService->getService('Transaction\\ProcessHeroSpark');
  863.         $this->requestUtil->setRequest($request)->setData();
  864.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  865.         $data = (object)$this->requestUtil->getData();
  866.         $discordService $this->generalService->getService('DiscordService');
  867.         $discordService->setChannel('debug');
  868.         if($debug){
  869.             $discordService->setMessage("HeroSpark - Start");
  870.             $discordService->sendDiscord();
  871.             $discordService->setMessage(json_encode($data));
  872.             $discordService->sendDiscord();
  873.         }
  874.         sleep(rand(15));
  875.         $processHeroSpark->setDebug($debug);
  876.         try{
  877.             $processHeroSpark->processTransactionHeroSpark($data);
  878.         }catch (\Exception $e) {
  879.             if($debug){
  880.                 $discordService->setMessage($e->getMessage());
  881.                 $discordService->sendDiscord();
  882.             }
  883.             return $this->eadResponse([
  884.                 "success" => ErrorEnum::NO,
  885.                 "message" => $e->getMessage(),
  886.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  887.         }
  888.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  889.     }
  890.     /**
  891.      * @Route(
  892.      *      path = "yampi/",
  893.      *      name = "processDataYampi",
  894.      *      methods = {"GET","POST","PUT"}
  895.      * )
  896.      * @Route(
  897.      *      path = "yampi",
  898.      *      name = "processDataYampiBar",
  899.      *      methods = {"GET","POST","PUT"}
  900.      * )
  901.      */
  902.     public function processDataYampi(Request $request) {
  903.         $processYampi $this->generalService->getService('Transaction\\ProcessYampi');
  904.         $this->requestUtil->setRequest($request)->setData();
  905.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  906.         $data = (object)$this->requestUtil->getData();
  907.         $discordService $this->generalService->getService('DiscordService');
  908.         $discordService->setChannel('debug');
  909.         if($debug){
  910.             $discordService->setMessage("Yampi - Start");
  911.             $discordService->sendDiscord();
  912.             $discordService->setMessage(json_encode($data));
  913.             $discordService->sendDiscord();
  914.         }
  915.         sleep(rand(15));
  916.         $processYampi->setDebug($debug);
  917.         try{
  918.             $processYampi->processTransactionYampi($data);
  919.         }catch (\Exception $e) {
  920.             if($debug){
  921.                 $discordService->setMessage($e->getMessage());
  922.                 $discordService->sendDiscord();
  923.             }
  924.             return $this->eadResponse([
  925.                 "success" => ErrorEnum::NO,
  926.                 "message" => $e->getMessage(),
  927.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  928.         }
  929.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  930.     }
  931.     /**
  932.      * @Route(
  933.      *      path = "cartpanda/",
  934.      *      name = "processDataCartPanda",
  935.      *      methods = {"GET","POST","PUT"}
  936.      * )
  937.      * @Route(
  938.      *      path = "cartpanda",
  939.      *      name = "processDataCartPandaBar",
  940.      *      methods = {"GET","POST","PUT"}
  941.      * )
  942.      */
  943.     public function processDataCartPanda(Request $request) {
  944.         $processCartPanda $this->generalService->getService('Transaction\\ProcessCartPanda');
  945.         $this->requestUtil->setRequest($request)->setData();
  946.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  947.         $data = (object)$this->requestUtil->getData();
  948.         $discordService $this->generalService->getService('DiscordService');
  949.         $discordService->setChannel('debug');
  950.         if($debug){
  951.             $discordService->setMessage("CartPanda - Start");
  952.             $discordService->sendDiscord();
  953.             $discordService->setMessage(json_encode($data));
  954.             $discordService->sendDiscord();
  955.         }
  956.         sleep(rand(15));
  957.         $processCartPanda->setDebug($debug);
  958.         try{
  959.             $processCartPanda->processTransactionCartPanda($data);
  960.         }catch (\Exception $e) {
  961.             if($debug){
  962.                 $discordService->setMessage($e->getMessage());
  963.                 $discordService->sendDiscord();
  964.             }
  965.             return $this->eadResponse([
  966.                 "success" => ErrorEnum::NO,
  967.                 "message" => $e->getMessage(),
  968.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  969.         }
  970.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  971.     }
  972.     /**
  973.      * @Route(
  974.      *      path = "kirvano/",
  975.      *      name = "processDataKirvano",
  976.      *      methods = {"GET","POST","PUT"}
  977.      * )
  978.      * @Route(
  979.      *      path = "kirvano",
  980.      *      name = "processDataKirvanoBar",
  981.      *      methods = {"GET","POST","PUT"}
  982.      * )
  983.      */
  984.     public function processDataKirvano(Request $request) {
  985.         $processKirvano $this->generalService->getService('Transaction\\ProcessKirvano');
  986.         $this->requestUtil->setRequest($request)->setData();
  987.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  988.         $data = (object)$this->requestUtil->getData();
  989.         $token $request->headers->get('security-token');
  990.         $discordService $this->generalService->getService('DiscordService');
  991.         $discordService->setChannel('debug');
  992.         if($debug){
  993.             $discordService->setMessage("Kirvano - Start");
  994.             $discordService->sendDiscord();
  995.             $discordService->setMessage("Token: $token");
  996.             $discordService->sendDiscord();
  997.             $discordService->setMessage(json_encode($data));
  998.             $discordService->sendDiscord();
  999.         }
  1000.         if(empty($token)){
  1001.             return $this->eadResponse([ "message" => "Token empty" ], ErrorEnum::AUTH_INVALID);
  1002.         }
  1003.         sleep(rand(15));
  1004.         
  1005.         $processKirvano->setDebug($debug);
  1006.         try{
  1007.             $processKirvano->processTransactionKirvano($data$token);
  1008.         }catch (\Exception $e) {
  1009.             if($debug){
  1010.                 $discordService->setMessage($e->getMessage());
  1011.                 $discordService->sendDiscord();
  1012.             }
  1013.             return $this->eadResponse([
  1014.                 "success" => ErrorEnum::NO,
  1015.                 "message" => $e->getMessage(),
  1016.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  1017.         }
  1018.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1019.     }
  1020.     /**
  1021.      * @Route(
  1022.      *      path = "callback/rdstation/",
  1023.      *      name = "callbackRdStationBar",
  1024.      *      methods = {"GET","POST","PUT"}
  1025.      * )
  1026.      * @Route(
  1027.      *      path = "callback/rdstation",
  1028.      *      name = "callbackRdStation",
  1029.      *      methods = {"GET","POST","PUT"}
  1030.      * )
  1031.      */
  1032.     public function callbackRdStation(Request $request){
  1033.         $token $request->headers->get('X-AUTH-TOKEN');
  1034.         if($token != $this->generalService->getTokenCron()){
  1035.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1036.         }
  1037.         $this->requestUtil->setRequest($request)->setData();
  1038.         $tokenClient $this->requestUtil->getField('token');
  1039.         if (empty($tokenClient)) {
  1040.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1041.         }
  1042.         if ($this->clientConfig->getToken() != $tokenClient) {
  1043.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1044.         }
  1045.         $code $this->requestUtil->getField('code');
  1046.         //$debug = (int)$request->get('debug') == ServicesEnum::YES;
  1047.         $debug true;
  1048.         
  1049.         $discordService $this->generalService->getService('DiscordService');
  1050.         $discordService->setChannel('debug');
  1051.         if($debug){
  1052.             $discordService->setMessage("RDStation - Start");
  1053.             $discordService->sendDiscord();
  1054.             $discordService->setMessage(json_encode($code));
  1055.             $discordService->sendDiscord();
  1056.         }
  1057.         $rdService $this->generalService->getService('Marketing\\RdStationService');
  1058.         $rdService->setDebug($debug);
  1059.        
  1060.         if(!empty($code)){
  1061.             $this->configuration->set('rdstation_code'$code);
  1062.             $this->configuration->set("app_rd_user"ConfigurationEnum::YES);
  1063.             $this->configuration->set("app_rd_product"ConfigurationEnum::YES);
  1064.             $this->configuration->set("app_rd_course"ConfigurationEnum::YES);
  1065.             $this->configuration->set("app_rd_payment"ConfigurationEnum::YES);
  1066.             $this->configuration->set("app_rd_subscription"ConfigurationEnum::YES);
  1067.             $this->configuration->set("app_rd_group"ConfigurationEnum::YES);
  1068.             $this->configuration->set("app_rd_enrollment"ConfigurationEnum::YES);
  1069.             $rdService->getTokenAccess($code);
  1070.         }
  1071.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1072.     }
  1073.     /**
  1074.      * @Route(
  1075.      *      path = "callback/bling/",
  1076.      *      name = "callbackBlingBar",
  1077.      *      methods = {"GET","POST","PUT"}
  1078.      * )
  1079.      * @Route(
  1080.      *      path = "callback/bling",
  1081.      *      name = "callbackBling",
  1082.      *      methods = {"GET","POST","PUT"}
  1083.      * )
  1084.      */
  1085.     public function callbackBling(Request $request){
  1086.         $discordService $this->generalService->getService('DiscordService');
  1087.         $discordService->setChannel('debug');
  1088.         $debug true;
  1089.         
  1090.         $token $request->headers->get('X-AUTH-TOKEN');
  1091.         if($debug){
  1092.             $discordService->setMessage("Bling - Start");
  1093.             $discordService->sendDiscord();
  1094.             $discordService->setMessage("Token: " $token);
  1095.             $discordService->sendDiscord();
  1096.         }
  1097.         
  1098.         if($token != $this->generalService->getTokenCron()){
  1099.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1100.         }
  1101.         $this->requestUtil->setRequest($request)->setData();
  1102.         $tokenClient $this->requestUtil->getField('token');
  1103.         if($debug){
  1104.             $discordService->setMessage("Token Client: " $tokenClient);
  1105.             $discordService->setMessage("Token Client Config: " $this->clientConfig->getToken());
  1106.             $discordService->sendDiscord();
  1107.         }
  1108.         if(empty($tokenClient)){
  1109.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1110.         }
  1111.         if($this->clientConfig->getToken() != $tokenClient){
  1112.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1113.         }
  1114.         $code $this->requestUtil->getField('code');
  1115.         
  1116.         if($debug){
  1117.             $discordService->setMessage("Código: " $code);
  1118.             $discordService->sendDiscord();
  1119.         }
  1120.         $blingAuthorization $this->generalService->getService(
  1121.             'Transaction\\Invoice\\BlingAuthorization'
  1122.         );
  1123.         $blingAuthorization->setDebug($debug);
  1124.         if(!empty($code)){
  1125.             $this->configuration->set('bling_code'$code);
  1126.             $blingAuthorization->getTokenAccess($code);
  1127.         }
  1128.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1129.     }
  1130.     /**
  1131.      * @Route(
  1132.      *      path = "callback/dinamize/",
  1133.      *      name = "callbackDinamizeBar",
  1134.      *      methods = {"GET","POST","PUT"}
  1135.      * )
  1136.      * @Route(
  1137.      *      path = "callback/dinamize",
  1138.      *      name = "callbackDinamize",
  1139.      *      methods = {"GET","POST","PUT"}
  1140.      * )
  1141.      */
  1142.     public function callbackDinamize(Request $request){
  1143.         $token $request->headers->get('X-AUTH-TOKEN');
  1144.         if($token != $this->generalService->getTokenCron()){
  1145.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1146.         }
  1147.         $this->requestUtil->setRequest($request)->setData();
  1148.         $tokenClient $this->requestUtil->getField('token');
  1149.         if (empty($tokenClient)) {
  1150.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1151.         }
  1152.         if ($this->clientConfig->getToken() != $tokenClient) {
  1153.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1154.         }
  1155.         $code $this->requestUtil->getField('code');
  1156.         
  1157.         if(!empty($code)){
  1158.             $this->configuration->set('dinamize_token'$code);
  1159.         }
  1160.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1161.     }
  1162.     /**
  1163.      * @Route(
  1164.      *      path          = "/client/info/{clientToken}",
  1165.      *      name          = "getClientInfo",
  1166.      *      methods       = {"GET"}
  1167.      * )
  1168.      */
  1169.     public function getClientInfo(Request $request)
  1170.     {
  1171.         $token $request->headers->get('X-AUTH-TOKEN');
  1172.         if($token != $this->generalService->getTokenCron()){
  1173.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1174.         }
  1175.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1176.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1177.         }
  1178.         $fileService $this->generalService->getService('FileService');
  1179.         $diskInfo $fileService->getClientSpaceDisk();
  1180.         $courseRepository $this->em->getRepository(Course::class);
  1181.         $coursesNumber $courseRepository->countAllCourses();
  1182.         $coursesNumberPublish $courseRepository->countAllCourses(CourseEnum::PUBLISHED);
  1183.         return $this->eadResponse([
  1184.             "coursesNumber" => $coursesNumber,
  1185.             "coursesNumberPublish" => $coursesNumberPublish,
  1186.             "diskRemaining" => $diskInfo->diskRemaining,
  1187.             "diskUsed" => $diskInfo->diskUsed,
  1188.             "diskTotal" => $diskInfo->diskTotal,
  1189.             "diskRemainingText" => $diskInfo->diskRemainingText,
  1190.             "diskUsedText" => $diskInfo->diskUsedText,
  1191.             "diskTotalText" => $diskInfo->diskTotalText,
  1192.             "diskPercent" => $diskInfo->diskPercent,
  1193.         ]);
  1194.     }
  1195.     /**
  1196.      * @Route(
  1197.      *      path          = "/client/downgrade/free/{clientToken}",
  1198.      *      name          = "downgradeToFree",
  1199.      *      methods       = {"GET"}
  1200.      * )
  1201.      */
  1202.     public function downgradeToFree(Request $request)
  1203.     {
  1204.         $token $request->headers->get('X-AUTH-TOKEN');
  1205.         if($token != $this->generalService->getTokenCron()){
  1206.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1207.         }
  1208.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1209.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1210.         }
  1211.         $fileService $this->generalService->getService('FileService');
  1212.         $diskInfo $fileService->getClientSpaceDisk();
  1213.         if($diskInfo->diskUsed >= ServicesEnum::MIN_SIZE_PLAN){
  1214.             return $this->eadResponse([
  1215.                 "message" => "Disk Size"
  1216.             ], ErrorEnum::ACTION_INVALID);
  1217.         }
  1218.         $domain $this->client->getDomainSecondary();
  1219.         if(!empty($domain)){
  1220.             $error $this->em->getRepository(Configuration::class)->deleteClientDomain($domain);
  1221.             if($error){
  1222.                 return $this->eadResponse([
  1223.                     "message" => "Custom Domain"
  1224.                 ], ErrorEnum::ACTION_INVALID);
  1225.             }
  1226.             $token $this->generalService->getTokenCron();
  1227.             $linkEadmin "https://connect.eadplataforma.com/app/park";
  1228.             $params "/{$token}/{$this->clientConfig->getToken()}/{$domain}/remove";
  1229.             file_get_contents($linkEadmin $params);
  1230.             $this->client->setDomainSecondary('');
  1231.             $this->clientConfig->setRedirect(ConfigurationEnum::NO);
  1232.             $this->emEadmin->flush();
  1233.             $this->em->flush();
  1234.         }
  1235.         $this->em->getRepository(Course::class)->updateCoursesToDraft();
  1236.         $this->em->getRepository(Receiver::class)->resetReceiversToDefault();
  1237.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1238.     }
  1239.     /**
  1240.      * @Route(
  1241.      *      path          = "/client/upgrade/receivers/{clientToken}",
  1242.      *      name          = "upgradeReceivers",
  1243.      *      methods       = {"GET"}
  1244.      * )
  1245.      */
  1246.     public function upgradeReceivers(Request $request)
  1247.     {
  1248.         $token $request->headers->get('X-AUTH-TOKEN');
  1249.         if($token != $this->generalService->getTokenCron()){
  1250.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1251.         }
  1252.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1253.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1254.         }
  1255.         if($this->configuration->isTrial()){
  1256.             return $this->eadResponse(nullErrorEnum::ACTION_INVALID);
  1257.         }
  1258.         $this->em->getRepository(Receiver::class)->resetReceiversToClientDefault();
  1259.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1260.     }
  1261.     /**
  1262.      * @Route(
  1263.      *      path          = "/remove/client/domain/{clientToken}",
  1264.      *      name          = "removeClientCustomDomain",
  1265.      *      methods       = {"DELETE"}
  1266.      * )
  1267.      */
  1268.     public function removeClientCustomDomain(Request $request)
  1269.     {
  1270.         $token $request->headers->get('X-AUTH-TOKEN');
  1271.         if($token != $this->generalService->getTokenCron()){
  1272.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1273.         }
  1274.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1275.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1276.         }
  1277.         $domain $this->client->getDomainSecondary();
  1278.         if(empty($domain)){
  1279.             return $this->eadResponse(nullErrorEnum::ACTION_INVALID);
  1280.         }
  1281.         $configurationRepository $this->em->getRepository(Configuration::class);
  1282.         $error $configurationRepository->deleteClientDomain($domain);
  1283.         if($error){
  1284.             return $this->eadResponse([ "message" => $error ], ErrorEnum::ACTION_INVALID);
  1285.         }
  1286.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1287.     }
  1288.     /**
  1289.      * @Route(
  1290.      *      path          = "/recover/transaction/item/{clientToken}",
  1291.      *      name          = "recoverTransactionItem",
  1292.      *      methods       = {"GET"}
  1293.      * )
  1294.      */
  1295.     public function recoverTransactionItem(Request $request)
  1296.     {
  1297.         $token $request->headers->get('X-AUTH-TOKEN');
  1298.         if($token != $this->generalService->getTokenCron()){
  1299.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1300.         }
  1301.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1302.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1303.         }
  1304.         $transactionRepository $this->em->getRepository(Transaction::class);
  1305.         $transactions $transactionRepository->getTransactionWithoutItem();
  1306.         foreach ($transactions as $key => $transaction) {
  1307.             $transactionRepository->processTransaction($transactiontruetruetruetrue);
  1308.         }
  1309.         return $this->eadResponse([
  1310.             "success" => ErrorEnum::YES,
  1311.             "count" => count($transactions),
  1312.         ]);
  1313.     }
  1314.     /**
  1315.      * @Route(
  1316.      *      path          = "/send/cron/{clientToken}",
  1317.      *      name          = "sendCron",
  1318.      *      methods       = {"GET"}
  1319.      * )
  1320.      */
  1321.     public function sendCron(Request $request)
  1322.     {
  1323.         $token $request->headers->get('X-AUTH-TOKEN');
  1324.         if($token != $this->generalService->getTokenCron()){
  1325.             return $this->eadResponse([ 
  1326.                 "message" => "Auth Invalid" 
  1327.             ], ErrorEnum::AUTH_INVALID);
  1328.         }
  1329.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1330.             return $this->eadResponse([ 
  1331.                 "message" => "Auth Invalid" 
  1332.             ], ErrorEnum::AUTH_INVALID);
  1333.         }
  1334.         $platformStatus $this->clientConfig->getPlatformStatus();
  1335.         $suspended ClientEnum::PLATFORM_STATUS_SUSPENDED;
  1336.         $canceled ClientEnum::PLATFORM_STATUS_CANCELED;
  1337.         
  1338.         if($platformStatus == $suspended || $platformStatus == $canceled){
  1339.             return $this->eadResponse([ 
  1340.                 "message" => "Plafatorma suspensa" 
  1341.             ], ErrorEnum::ACTION_INVALID);
  1342.         }
  1343.         $cronUrl "https://{$this->eadDomain}/general/{$this->clientConfig->getToken()}";
  1344.         $sqsService $this->generalService->getService('Aws\\AwsSqs');
  1345.         $info $sqsService->sendMessageCron($cronUrl);
  1346.         if($info->error){
  1347.             return $this->eadResponse([ 
  1348.                 "message" => $info->message
  1349.             ], ErrorEnum::ACTION_INVALID);
  1350.         }
  1351.         return $this->eadResponse([
  1352.             "success" => ErrorEnum::YES,
  1353.         ]);
  1354.     }
  1355.     /**
  1356.      * @Route(
  1357.      *      path          = "/run/updater/{clientToken}",
  1358.      *      name          = "runUpdater",
  1359.      *      methods       = {"GET"}
  1360.      * )
  1361.      */
  1362.     public function runUpdater(Request $request)
  1363.     {
  1364.         $token $request->headers->get('X-AUTH-TOKEN');
  1365.         if($token != $this->generalService->getTokenCron()){
  1366.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1367.         }
  1368.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1369.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1370.         }
  1371.         $databaseManagerService $this->generalService->getService('DatabaseManagerService');
  1372.         $databaseManagerService->executeMigrations(true);
  1373.         return $this->eadResponse([
  1374.             "success" => ErrorEnum::YES,
  1375.         ]);
  1376.     }
  1377.     /**
  1378.      * @Route(
  1379.      *      path          = "/info",
  1380.      *      name          = "getInfo",
  1381.      *      methods       = {"GET"}
  1382.      * )
  1383.      */
  1384.     public function getInfo(Request $request)
  1385.     {
  1386.         $token $request->headers->get('X-AUTH-TOKEN');
  1387.         if($token != $this->generalService->getTokenCron()){
  1388.             throw new AuthInvalidException('Auth Invalid');
  1389.         }
  1390.         $domains = [
  1391.             $this->client->getDomainPrimary(),
  1392.         ];
  1393.         if(!empty($this->client->getDomainSecondary())){
  1394.             $domains[] = $this->client->getDomainSecondary();
  1395.         }
  1396.         $plan $this->configuration->getPlan();
  1397.         $data = [
  1398.             "id" => $this->client->getClientId(),
  1399.             "planId" => $plan->getId(),
  1400.             "planTitle" => $plan->getTitle(),
  1401.             "urls" => $domains,
  1402.             "limit" => $plan->getLimitSimultaneousAccess(),
  1403.         ];
  1404.         return new HttpOk($data);
  1405.     }
  1406.     /**
  1407.      * @Route(
  1408.      *      path          = "/info/course/{clientToken}",
  1409.      *      name          = "getInfoCourse",
  1410.      *      methods       = {"GET"}
  1411.      * )
  1412.      */
  1413.     public function getInfoCourse(Request $request)
  1414.     {
  1415.         $token $request->headers->get('X-AUTH-TOKEN');
  1416.         if($token != $this->generalService->getTokenCron()){
  1417.             throw new AuthInvalidException('Auth Invalid');
  1418.         }
  1419.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1420.             throw new AuthInvalidException('Auth Invalid');
  1421.         }
  1422.         $courseRepository $this->em->getRepository(Course::class);
  1423.         $courses $courseRepository->findBy([
  1424.             "deleted" => CourseEnum::ITEM_NO_DELETED
  1425.         ]);
  1426.         $data = [];
  1427.         foreach ($courses as $key => $course) {
  1428.             $data[] = (object)[
  1429.                 "title" => $course->getTitle(),
  1430.             ];
  1431.         }
  1432.         return new HttpOk($data);
  1433.     }
  1434.     /**
  1435.      * @Route(
  1436.      *      path          = "/genereate/eadmin/sso/{clientToken}",
  1437.      *      name          = "genereateAdminSSO",
  1438.      *      methods       = {"POST"}
  1439.      * )
  1440.      *
  1441.      * @throws ActionInvalidException
  1442.      * @throws FieldException
  1443.      */
  1444.     public function genereateAdminSSO(Request $request)
  1445.     {
  1446.         $this->requestUtil->setRequest($request)->setData();
  1447.         $token $request->headers->get('X-AUTH-TOKEN');
  1448.         if($token != $this->generalService->getTokenCron()){
  1449.             throw new AuthInvalidException('Auth Invalid');
  1450.         }
  1451.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1452.             throw new AuthInvalidException('Auth Invalid');
  1453.         }
  1454.         $userId $this->requestUtil->getField('userId');
  1455.         if(empty($userId)){
  1456.             throw new FieldException("FieldException", [ "userId" => "User cannot be empty" ]);
  1457.         }
  1458.         $url $this->requestUtil->getField('url');
  1459.         $domain $request->getHost();
  1460.         $signDomain $this->generalService->signDataWithExpiration(md5($domain));
  1461.         $signId $this->generalService->signDataWithExpiration(md5($userId));
  1462.         $data = [
  1463.             "url" => "https://{$domain}/login/eadmin/sso/{$signId}/{$signDomain}?url={$url}",
  1464.         ];
  1465.         return new HttpOk($data);
  1466.     }
  1467. }