src/Controller/Website/ServiceController.php line 1720

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.         $token $request->headers->get('doppus-token');
  610.         $content json_decode($request->getContent());
  611.         $data = (object)$content;
  612.         
  613.         $discordService $this->generalService->getService('DiscordService');
  614.         $discordService->setChannel('debug');
  615.         if($debug){
  616.             $discordService->setMessage("Doppus - Start");
  617.             $discordService->sendDiscord();
  618.             $discordService->setMessage("Token: $token");
  619.             $discordService->sendDiscord();
  620.             $discordService->setMessage(json_encode($data));
  621.             $discordService->sendDiscord();
  622.         }
  623.         if(empty($token)){
  624.             return $this->eadResponse([ "message" => "Token empty" ], ErrorEnum::AUTH_INVALID);
  625.         }
  626.         
  627.         sleep(rand(15));
  628.         $processDoppus->setDebug($debug);
  629.         try{
  630.             $processDoppus->processTransactionDoppus($data$token);
  631.         }catch (\Exception $e) {
  632.             if($debug){
  633.                 $discordService->setMessage($e->getMessage());
  634.                 $discordService->sendDiscord();
  635.             }
  636.             return $this->eadResponse([
  637.                 "success" => ErrorEnum::NO,
  638.                 "message" => $e->getMessage(),
  639.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  640.         }
  641.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  642.     }
  643.     /**
  644.      * @Route(
  645.      *      path = "ticto/",
  646.      *      name = "processDataTictoBar",
  647.      *      methods = {"GET","POST","PUT"}
  648.      * )
  649.      * @Route(
  650.      *      path = "ticto",
  651.      *      name = "processDataTicto",
  652.      *      methods = {"GET","POST","PUT"}
  653.      * )
  654.      */
  655.     public function processDataTicto(Request $request) {
  656.         $processTicto $this->generalService->getService('Transaction\\ProcessTicto');
  657.         $this->requestUtil->setRequest($request)->setData();
  658.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  659.         $data = (object)$this->requestUtil->getData();
  660.         $discordService $this->generalService->getService('DiscordService');
  661.         $discordService->setChannel('debug');
  662.         if($debug){
  663.             $discordService->setMessage("Ticto - Start");
  664.             $discordService->sendDiscord();
  665.             $discordService->setMessage(json_encode($data));
  666.             $discordService->sendDiscord();
  667.         }
  668.         sleep(rand(15));
  669.         $processTicto->setDebug($debug);
  670.         try{
  671.             $processTicto->processTransactionTicto($data);
  672.         }catch (\Exception $e) {
  673.             if($debug){
  674.                 $discordService->setMessage($e->getMessage());
  675.                 $discordService->sendDiscord();
  676.             }
  677.             return $this->eadResponse([
  678.                 "success" => ErrorEnum::NO,
  679.                 "message" => $e->getMessage(),
  680.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  681.         }
  682.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  683.     }
  684.     /**
  685.      * @Route(
  686.      *      path = "mercadopago/",
  687.      *      name = "processDataMercadoPagoBar",
  688.      *      methods = {"GET","POST","PUT"}
  689.      * )
  690.      * @Route(
  691.      *      path = "mercadopago",
  692.      *      name = "processDataMercadoPago",
  693.      *      methods = {"GET","POST","PUT"}
  694.      * )
  695.      */
  696.     public function processDataMercadoPago(Request $request) {
  697.         $processMercadoPago $this->generalService->getService(
  698.             'Transaction\\ProcessMercadoPago'
  699.         );
  700.         $mercadoPago $this->generalService->getService('MercadoPago\\MercadoPago');
  701.         $this->requestUtil->setRequest($request)->setData();
  702.         
  703.         $data $this->requestUtil->getData();
  704.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  705.         $discordService $this->generalService->getService('DiscordService');
  706.         $discordService->setChannel('debug');
  707.         if($debug){
  708.             $discordService->setMessage("MercadoPago - Start");
  709.             $discordService->sendDiscord();
  710.             $discordService->setMessage(json_encode((object)$data));
  711.             $discordService->sendDiscord();
  712.         }
  713.         sleep(rand(15));
  714.         $processMercadoPago->setDebug($debug);
  715.         
  716.         try{
  717.             if(!$mercadoPago->isPostValid($data)){
  718.                 throw new ActionInvalidException("Only transaction requests are allowed.");
  719.             }
  720.             $processMercadoPago->processTransactionMercadoPago((object)$data);
  721.         } catch (\Exception $e) {
  722.             if($debug){
  723.                 $discordService->setMessage($e->getMessage());
  724.                 $discordService->sendDiscord();
  725.             }
  726.             return $this->eadResponse([
  727.                 "success" => ErrorEnum::NO,
  728.                 "message" => $e->getMessage(),
  729.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  730.         }
  731.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  732.     }
  733.     /**
  734.      * @Route(
  735.      *      path = "abmex/",
  736.      *      name = "processDataAbmexBar",
  737.      *      methods = {"GET","POST","PUT"}
  738.      * )
  739.      * @Route(
  740.      *      path = "abmex",
  741.      *      name = "processDataAbmex",
  742.      *      methods = {"GET","POST","PUT"}
  743.      * )
  744.      */
  745.     public function processDataAbmex(Request $request) {
  746.         $processAbmex $this->generalService->getService('Transaction\\ProcessAbmex');
  747.         $this->requestUtil->setRequest($request)->setData();
  748.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  749.         $data = (object)$this->requestUtil->getData();
  750.         $discordService $this->generalService->getService('DiscordService');
  751.         $discordService->setChannel('debug');
  752.         if($debug){
  753.             $discordService->setMessage("Abmex - Start");
  754.             $discordService->sendDiscord();
  755.             $discordService->setMessage(json_encode($data));
  756.             $discordService->sendDiscord();
  757.         }
  758.         sleep(rand(15));
  759.         $processAbmex->setDebug($debug);
  760.         try{
  761.             $processAbmex->processTransactionAbmex($data);
  762.         }catch (\Exception $e) {
  763.             if($debug){
  764.                 $discordService->setMessage($e->getMessage());
  765.                 $discordService->sendDiscord();
  766.             }
  767.             return $this->eadResponse([
  768.                 "success" => ErrorEnum::NO,
  769.                 "message" => $e->getMessage(),
  770.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  771.         }
  772.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  773.     }
  774.     /**
  775.      * @Route(
  776.      *      path = "perfectpay/",
  777.      *      name = "processDataPerfectPayBar",
  778.      *      methods = {"GET","POST","PUT"}
  779.      * )
  780.      * @Route(
  781.      *      path = "perfectpay",
  782.      *      name = "processDataPerfectPay",
  783.      *      methods = {"GET","POST","PUT"}
  784.      * )
  785.      */
  786.     public function processDataPerfectPay(Request $request) {
  787.         $processPerfectPay $this->generalService->getService(
  788.             'Transaction\\ProcessPerfectPay'
  789.         );
  790.         $this->requestUtil->setRequest($request)->setData();
  791.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  792.         $data = (object)$this->requestUtil->getData();
  793.         $discordService $this->generalService->getService('DiscordService');
  794.         $discordService->setChannel('debug');
  795.         if($debug){
  796.             $discordService->setMessage("PerfectPay - Start");
  797.             $discordService->sendDiscord();
  798.             $discordService->setMessage(json_encode($data));
  799.             $discordService->sendDiscord();
  800.         }
  801.         sleep(rand(15));
  802.         $processPerfectPay->setDebug($debug);
  803.         try{
  804.             $processPerfectPay->processTransactionPerfectPay($data);
  805.         }catch (\Exception $e) {
  806.             if($debug){
  807.                 $discordService->setMessage($e->getMessage());
  808.                 $discordService->sendDiscord();
  809.             }
  810.             return $this->eadResponse([
  811.                 "success" => ErrorEnum::NO,
  812.                 "message" => $e->getMessage(),
  813.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  814.         }
  815.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  816.     }
  817.     /**
  818.      * @Route(
  819.      *      path = "evermart/",
  820.      *      name = "processDataEvermartBar",
  821.      *      methods = {"GET","POST","PUT"}
  822.      * )
  823.      * @Route(
  824.      *      path = "evermart",
  825.      *      name = "processDataEvermart",
  826.      *      methods = {"GET","POST","PUT"}
  827.      * )
  828.      */
  829.     public function processDataEvermart(Request $request) {
  830.         $processEvermart $this->generalService->getService('Transaction\\ProcessEvermart');
  831.         $this->requestUtil->setRequest($request)->setData();
  832.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  833.         $data = (object)$this->requestUtil->getData();
  834.         $discordService $this->generalService->getService('DiscordService');
  835.         $discordService->setChannel('debug');
  836.         if($debug){
  837.             $discordService->setMessage("Evermart - Start");
  838.             $discordService->sendDiscord();
  839.             $discordService->setMessage(json_encode($data));
  840.             $discordService->sendDiscord();
  841.         }
  842.         sleep(rand(15));
  843.         $processEvermart->setDebug($debug);
  844.         try{
  845.             $processEvermart->processTransactionEvermart($data);
  846.         }catch (\Exception $e) {
  847.             if($debug){
  848.                 $discordService->setMessage($e->getMessage());
  849.                 $discordService->sendDiscord();
  850.             }
  851.             return $this->eadResponse([
  852.                 "success" => ErrorEnum::NO,
  853.                 "message" => $e->getMessage(),
  854.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  855.         }
  856.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  857.     }
  858.     /**
  859.      * @Route(
  860.      *      path = "herospark/",
  861.      *      name = "processDataHeroSparkBar",
  862.      *      methods = {"GET","POST","PUT"}
  863.      * )
  864.      * @Route(
  865.      *      path = "herospark",
  866.      *      name = "processDataHeroSpark",
  867.      *      methods = {"GET","POST","PUT"}
  868.      * )
  869.      */
  870.     public function processDataHeroSpark(Request $request) {
  871.         $processHeroSpark $this->generalService->getService('Transaction\\ProcessHeroSpark');
  872.         $this->requestUtil->setRequest($request)->setData();
  873.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  874.         $data = (object)$this->requestUtil->getData();
  875.         $discordService $this->generalService->getService('DiscordService');
  876.         $discordService->setChannel('debug');
  877.         if($debug){
  878.             $discordService->setMessage("HeroSpark - Start");
  879.             $discordService->sendDiscord();
  880.             $discordService->setMessage(json_encode($data));
  881.             $discordService->sendDiscord();
  882.         }
  883.         sleep(rand(15));
  884.         $processHeroSpark->setDebug($debug);
  885.         try{
  886.             $processHeroSpark->processTransactionHeroSpark($data);
  887.         }catch (\Exception $e) {
  888.             if($debug){
  889.                 $discordService->setMessage($e->getMessage());
  890.                 $discordService->sendDiscord();
  891.             }
  892.             return $this->eadResponse([
  893.                 "success" => ErrorEnum::NO,
  894.                 "message" => $e->getMessage(),
  895.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  896.         }
  897.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  898.     }
  899.     /**
  900.      * @Route(
  901.      *      path = "yampi/",
  902.      *      name = "processDataYampi",
  903.      *      methods = {"GET","POST","PUT"}
  904.      * )
  905.      * @Route(
  906.      *      path = "yampi",
  907.      *      name = "processDataYampiBar",
  908.      *      methods = {"GET","POST","PUT"}
  909.      * )
  910.      */
  911.     public function processDataYampi(Request $request) {
  912.         $processYampi $this->generalService->getService('Transaction\\ProcessYampi');
  913.         $this->requestUtil->setRequest($request)->setData();
  914.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  915.         $data = (object)$this->requestUtil->getData();
  916.         $discordService $this->generalService->getService('DiscordService');
  917.         $discordService->setChannel('debug');
  918.         if($debug){
  919.             $discordService->setMessage("Yampi - Start");
  920.             $discordService->sendDiscord();
  921.             $discordService->setMessage(json_encode($data));
  922.             $discordService->sendDiscord();
  923.         }
  924.         sleep(rand(15));
  925.         $processYampi->setDebug($debug);
  926.         try{
  927.             $processYampi->processTransactionYampi($data);
  928.         }catch (\Exception $e) {
  929.             if($debug){
  930.                 $discordService->setMessage($e->getMessage());
  931.                 $discordService->sendDiscord();
  932.             }
  933.             return $this->eadResponse([
  934.                 "success" => ErrorEnum::NO,
  935.                 "message" => $e->getMessage(),
  936.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  937.         }
  938.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  939.     }
  940.     /**
  941.      * @Route(
  942.      *      path = "cartpanda/",
  943.      *      name = "processDataCartPanda",
  944.      *      methods = {"GET","POST","PUT"}
  945.      * )
  946.      * @Route(
  947.      *      path = "cartpanda",
  948.      *      name = "processDataCartPandaBar",
  949.      *      methods = {"GET","POST","PUT"}
  950.      * )
  951.      */
  952.     public function processDataCartPanda(Request $request) {
  953.         $processCartPanda $this->generalService->getService('Transaction\\ProcessCartPanda');
  954.         $this->requestUtil->setRequest($request)->setData();
  955.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  956.         $data = (object)$this->requestUtil->getData();
  957.         $discordService $this->generalService->getService('DiscordService');
  958.         $discordService->setChannel('debug');
  959.         if($debug){
  960.             $discordService->setMessage("CartPanda - Start");
  961.             $discordService->sendDiscord();
  962.             $discordService->setMessage(json_encode($data));
  963.             $discordService->sendDiscord();
  964.         }
  965.         sleep(rand(15));
  966.         $processCartPanda->setDebug($debug);
  967.         try{
  968.             $processCartPanda->processTransactionCartPanda($data);
  969.         }catch (\Exception $e) {
  970.             if($debug){
  971.                 $discordService->setMessage($e->getMessage());
  972.                 $discordService->sendDiscord();
  973.             }
  974.             return $this->eadResponse([
  975.                 "success" => ErrorEnum::NO,
  976.                 "message" => $e->getMessage(),
  977.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  978.         }
  979.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  980.     }
  981.     /**
  982.      * @Route(
  983.      *      path = "kirvano/",
  984.      *      name = "processDataKirvano",
  985.      *      methods = {"GET","POST","PUT"}
  986.      * )
  987.      * @Route(
  988.      *      path = "kirvano",
  989.      *      name = "processDataKirvanoBar",
  990.      *      methods = {"GET","POST","PUT"}
  991.      * )
  992.      */
  993.     public function processDataKirvano(Request $request) {
  994.         $processKirvano $this->generalService->getService('Transaction\\ProcessKirvano');
  995.         $this->requestUtil->setRequest($request)->setData();
  996.         $debug = (int)$request->get('debug') == ServicesEnum::YES;
  997.         $data = (object)$this->requestUtil->getData();
  998.         $token $request->headers->get('security-token');
  999.         $discordService $this->generalService->getService('DiscordService');
  1000.         $discordService->setChannel('debug');
  1001.         if($debug){
  1002.             $discordService->setMessage("Kirvano - Start");
  1003.             $discordService->sendDiscord();
  1004.             $discordService->setMessage("Token: $token");
  1005.             $discordService->sendDiscord();
  1006.             $discordService->setMessage(json_encode($data));
  1007.             $discordService->sendDiscord();
  1008.         }
  1009.         if(empty($token)){
  1010.             return $this->eadResponse([ "message" => "Token empty" ], ErrorEnum::AUTH_INVALID);
  1011.         }
  1012.         sleep(rand(15));
  1013.         
  1014.         $processKirvano->setDebug($debug);
  1015.         try{
  1016.             $processKirvano->processTransactionKirvano($data$token);
  1017.         }catch (\Exception $e) {
  1018.             if($debug){
  1019.                 $discordService->setMessage($e->getMessage());
  1020.                 $discordService->sendDiscord();
  1021.             }
  1022.             return $this->eadResponse([
  1023.                 "success" => ErrorEnum::NO,
  1024.                 "message" => $e->getMessage(),
  1025.             ], ErrorEnum::INTERNAL_ERRORtruetrue);
  1026.         }
  1027.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1028.     }
  1029.     /**
  1030.      * @Route(
  1031.      *      path = "callback/rdstation/",
  1032.      *      name = "callbackRdStationBar",
  1033.      *      methods = {"GET","POST","PUT"}
  1034.      * )
  1035.      * @Route(
  1036.      *      path = "callback/rdstation",
  1037.      *      name = "callbackRdStation",
  1038.      *      methods = {"GET","POST","PUT"}
  1039.      * )
  1040.      */
  1041.     public function callbackRdStation(Request $request){
  1042.         $token $request->headers->get('X-AUTH-TOKEN');
  1043.         if($token != $this->generalService->getTokenCron()){
  1044.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1045.         }
  1046.         $this->requestUtil->setRequest($request)->setData();
  1047.         $tokenClient $this->requestUtil->getField('token');
  1048.         if (empty($tokenClient)) {
  1049.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1050.         }
  1051.         if ($this->clientConfig->getToken() != $tokenClient) {
  1052.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1053.         }
  1054.         $code $this->requestUtil->getField('code');
  1055.         //$debug = (int)$request->get('debug') == ServicesEnum::YES;
  1056.         $debug true;
  1057.         
  1058.         $discordService $this->generalService->getService('DiscordService');
  1059.         $discordService->setChannel('debug');
  1060.         if($debug){
  1061.             $discordService->setMessage("RDStation - Start");
  1062.             $discordService->sendDiscord();
  1063.             $discordService->setMessage(json_encode($code));
  1064.             $discordService->sendDiscord();
  1065.         }
  1066.         $rdService $this->generalService->getService('Marketing\\RdStationService');
  1067.         $rdService->setDebug($debug);
  1068.        
  1069.         if(!empty($code)){
  1070.             $this->configuration->set('rdstation_code'$code);
  1071.             $this->configuration->set("app_rd_user"ConfigurationEnum::YES);
  1072.             $this->configuration->set("app_rd_product"ConfigurationEnum::YES);
  1073.             $this->configuration->set("app_rd_course"ConfigurationEnum::YES);
  1074.             $this->configuration->set("app_rd_payment"ConfigurationEnum::YES);
  1075.             $this->configuration->set("app_rd_subscription"ConfigurationEnum::YES);
  1076.             $this->configuration->set("app_rd_group"ConfigurationEnum::YES);
  1077.             $this->configuration->set("app_rd_enrollment"ConfigurationEnum::YES);
  1078.             $rdService->getTokenAccess($code);
  1079.         }
  1080.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1081.     }
  1082.     /**
  1083.      * @Route(
  1084.      *      path = "callback/bling/",
  1085.      *      name = "callbackBlingBar",
  1086.      *      methods = {"GET","POST","PUT"}
  1087.      * )
  1088.      * @Route(
  1089.      *      path = "callback/bling",
  1090.      *      name = "callbackBling",
  1091.      *      methods = {"GET","POST","PUT"}
  1092.      * )
  1093.      */
  1094.     public function callbackBling(Request $request){
  1095.         $discordService $this->generalService->getService('DiscordService');
  1096.         $discordService->setChannel('debug');
  1097.         $debug true;
  1098.         
  1099.         $token $request->headers->get('X-AUTH-TOKEN');
  1100.         if($debug){
  1101.             $discordService->setMessage("Bling - Start");
  1102.             $discordService->sendDiscord();
  1103.             $discordService->setMessage("Token: " $token);
  1104.             $discordService->sendDiscord();
  1105.         }
  1106.         
  1107.         if($token != $this->generalService->getTokenCron()){
  1108.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1109.         }
  1110.         $this->requestUtil->setRequest($request)->setData();
  1111.         $tokenClient $this->requestUtil->getField('token');
  1112.         if($debug){
  1113.             $discordService->setMessage("Token Client: " $tokenClient);
  1114.             $discordService->setMessage("Token Client Config: " $this->clientConfig->getToken());
  1115.             $discordService->sendDiscord();
  1116.         }
  1117.         if(empty($tokenClient)){
  1118.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1119.         }
  1120.         if($this->clientConfig->getToken() != $tokenClient){
  1121.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1122.         }
  1123.         $code $this->requestUtil->getField('code');
  1124.         
  1125.         if($debug){
  1126.             $discordService->setMessage("Código: " $code);
  1127.             $discordService->sendDiscord();
  1128.         }
  1129.         $blingAuthorization $this->generalService->getService(
  1130.             'Transaction\\Invoice\\BlingAuthorization'
  1131.         );
  1132.         $blingAuthorization->setDebug($debug);
  1133.         if(!empty($code)){
  1134.             $this->configuration->set('bling_code'$code);
  1135.             $blingAuthorization->getTokenAccess($code);
  1136.         }
  1137.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1138.     }
  1139.     /**
  1140.      * @Route(
  1141.      *      path = "callback/dinamize/",
  1142.      *      name = "callbackDinamizeBar",
  1143.      *      methods = {"GET","POST","PUT"}
  1144.      * )
  1145.      * @Route(
  1146.      *      path = "callback/dinamize",
  1147.      *      name = "callbackDinamize",
  1148.      *      methods = {"GET","POST","PUT"}
  1149.      * )
  1150.      */
  1151.     public function callbackDinamize(Request $request){
  1152.         $token $request->headers->get('X-AUTH-TOKEN');
  1153.         if($token != $this->generalService->getTokenCron()){
  1154.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1155.         }
  1156.         $this->requestUtil->setRequest($request)->setData();
  1157.         $tokenClient $this->requestUtil->getField('token');
  1158.         if (empty($tokenClient)) {
  1159.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1160.         }
  1161.         if ($this->clientConfig->getToken() != $tokenClient) {
  1162.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1163.         }
  1164.         $code $this->requestUtil->getField('code');
  1165.         
  1166.         if(!empty($code)){
  1167.             $this->configuration->set('dinamize_token'$code);
  1168.         }
  1169.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1170.     }
  1171.     /**
  1172.      * @Route(
  1173.      *      path          = "/client/info/{clientToken}",
  1174.      *      name          = "getClientInfo",
  1175.      *      methods       = {"GET"}
  1176.      * )
  1177.      */
  1178.     public function getClientInfo(Request $request)
  1179.     {
  1180.         $token $request->headers->get('X-AUTH-TOKEN');
  1181.         if($token != $this->generalService->getTokenCron()){
  1182.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1183.         }
  1184.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1185.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1186.         }
  1187.         $fileService $this->generalService->getService('FileService');
  1188.         $diskInfo $fileService->getClientSpaceDisk();
  1189.         $courseRepository $this->em->getRepository(Course::class);
  1190.         $coursesNumber $courseRepository->countAllCourses();
  1191.         $coursesNumberPublish $courseRepository->countAllCourses(CourseEnum::PUBLISHED);
  1192.         return $this->eadResponse([
  1193.             "coursesNumber" => $coursesNumber,
  1194.             "coursesNumberPublish" => $coursesNumberPublish,
  1195.             "diskRemaining" => $diskInfo->diskRemaining,
  1196.             "diskUsed" => $diskInfo->diskUsed,
  1197.             "diskTotal" => $diskInfo->diskTotal,
  1198.             "diskRemainingText" => $diskInfo->diskRemainingText,
  1199.             "diskUsedText" => $diskInfo->diskUsedText,
  1200.             "diskTotalText" => $diskInfo->diskTotalText,
  1201.             "diskPercent" => $diskInfo->diskPercent,
  1202.         ]);
  1203.     }
  1204.     /**
  1205.      * @Route(
  1206.      *      path          = "/client/downgrade/free/{clientToken}",
  1207.      *      name          = "downgradeToFree",
  1208.      *      methods       = {"GET"}
  1209.      * )
  1210.      */
  1211.     public function downgradeToFree(Request $request)
  1212.     {
  1213.         $token $request->headers->get('X-AUTH-TOKEN');
  1214.         if($token != $this->generalService->getTokenCron()){
  1215.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1216.         }
  1217.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1218.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1219.         }
  1220.         $fileService $this->generalService->getService('FileService');
  1221.         $diskInfo $fileService->getClientSpaceDisk();
  1222.         if($diskInfo->diskUsed >= ServicesEnum::MIN_SIZE_PLAN){
  1223.             return $this->eadResponse([
  1224.                 "message" => "Disk Size"
  1225.             ], ErrorEnum::ACTION_INVALID);
  1226.         }
  1227.         $domain $this->client->getDomainSecondary();
  1228.         if(!empty($domain)){
  1229.             $error $this->em->getRepository(Configuration::class)->deleteClientDomain($domain);
  1230.             if($error){
  1231.                 return $this->eadResponse([
  1232.                     "message" => "Custom Domain"
  1233.                 ], ErrorEnum::ACTION_INVALID);
  1234.             }
  1235.             $token $this->generalService->getTokenCron();
  1236.             $linkEadmin "https://connect.eadplataforma.com/app/park";
  1237.             $params "/{$token}/{$this->clientConfig->getToken()}/{$domain}/remove";
  1238.             file_get_contents($linkEadmin $params);
  1239.             $this->client->setDomainSecondary('');
  1240.             $this->clientConfig->setRedirect(ConfigurationEnum::NO);
  1241.             $this->emEadmin->flush();
  1242.             $this->em->flush();
  1243.         }
  1244.         $this->em->getRepository(Course::class)->updateCoursesToDraft();
  1245.         $this->em->getRepository(Receiver::class)->resetReceiversToDefault();
  1246.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1247.     }
  1248.     /**
  1249.      * @Route(
  1250.      *      path          = "/client/upgrade/receivers/{clientToken}",
  1251.      *      name          = "upgradeReceivers",
  1252.      *      methods       = {"GET"}
  1253.      * )
  1254.      */
  1255.     public function upgradeReceivers(Request $request)
  1256.     {
  1257.         $token $request->headers->get('X-AUTH-TOKEN');
  1258.         if($token != $this->generalService->getTokenCron()){
  1259.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1260.         }
  1261.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1262.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1263.         }
  1264.         if($this->configuration->isTrial()){
  1265.             return $this->eadResponse(nullErrorEnum::ACTION_INVALID);
  1266.         }
  1267.         $this->em->getRepository(Receiver::class)->resetReceiversToClientDefault();
  1268.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1269.     }
  1270.     /**
  1271.      * @Route(
  1272.      *      path          = "/remove/client/domain/{clientToken}",
  1273.      *      name          = "removeClientCustomDomain",
  1274.      *      methods       = {"DELETE"}
  1275.      * )
  1276.      */
  1277.     public function removeClientCustomDomain(Request $request)
  1278.     {
  1279.         $token $request->headers->get('X-AUTH-TOKEN');
  1280.         if($token != $this->generalService->getTokenCron()){
  1281.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1282.         }
  1283.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1284.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1285.         }
  1286.         $domain $this->client->getDomainSecondary();
  1287.         if(empty($domain)){
  1288.             return $this->eadResponse(nullErrorEnum::ACTION_INVALID);
  1289.         }
  1290.         $configurationRepository $this->em->getRepository(Configuration::class);
  1291.         $error $configurationRepository->deleteClientDomain($domain);
  1292.         if($error){
  1293.             return $this->eadResponse([ "message" => $error ], ErrorEnum::ACTION_INVALID);
  1294.         }
  1295.         return $this->eadResponse([ "success" => ErrorEnum::YES ]);
  1296.     }
  1297.     /**
  1298.      * @Route(
  1299.      *      path          = "/recover/transaction/item/{clientToken}",
  1300.      *      name          = "recoverTransactionItem",
  1301.      *      methods       = {"GET"}
  1302.      * )
  1303.      */
  1304.     public function recoverTransactionItem(Request $request)
  1305.     {
  1306.         $token $request->headers->get('X-AUTH-TOKEN');
  1307.         if($token != $this->generalService->getTokenCron()){
  1308.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1309.         }
  1310.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1311.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1312.         }
  1313.         $transactionRepository $this->em->getRepository(Transaction::class);
  1314.         $transactions $transactionRepository->getTransactionWithoutItem();
  1315.         foreach ($transactions as $key => $transaction) {
  1316.             $transactionRepository->processTransaction($transactiontruetruetruetrue);
  1317.         }
  1318.         return $this->eadResponse([
  1319.             "success" => ErrorEnum::YES,
  1320.             "count" => count($transactions),
  1321.         ]);
  1322.     }
  1323.     /**
  1324.      * @Route(
  1325.      *      path          = "/send/cron/{clientToken}",
  1326.      *      name          = "sendCron",
  1327.      *      methods       = {"GET"}
  1328.      * )
  1329.      */
  1330.     public function sendCron(Request $request)
  1331.     {
  1332.         $token $request->headers->get('X-AUTH-TOKEN');
  1333.         if($token != $this->generalService->getTokenCron()){
  1334.             return $this->eadResponse([ 
  1335.                 "message" => "Auth Invalid" 
  1336.             ], ErrorEnum::AUTH_INVALID);
  1337.         }
  1338.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1339.             return $this->eadResponse([ 
  1340.                 "message" => "Auth Invalid" 
  1341.             ], ErrorEnum::AUTH_INVALID);
  1342.         }
  1343.         $platformStatus $this->clientConfig->getPlatformStatus();
  1344.         $suspended ClientEnum::PLATFORM_STATUS_SUSPENDED;
  1345.         $canceled ClientEnum::PLATFORM_STATUS_CANCELED;
  1346.         
  1347.         if($platformStatus == $suspended || $platformStatus == $canceled){
  1348.             return $this->eadResponse([ 
  1349.                 "message" => "Plafatorma suspensa" 
  1350.             ], ErrorEnum::ACTION_INVALID);
  1351.         }
  1352.         $cronUrl "https://{$this->eadDomain}/general/{$this->clientConfig->getToken()}";
  1353.         $sqsService $this->generalService->getService('Aws\\AwsSqs');
  1354.         $info $sqsService->sendMessageCron($cronUrl);
  1355.         if($info->error){
  1356.             return $this->eadResponse([ 
  1357.                 "message" => $info->message
  1358.             ], ErrorEnum::ACTION_INVALID);
  1359.         }
  1360.         return $this->eadResponse([
  1361.             "success" => ErrorEnum::YES,
  1362.         ]);
  1363.     }
  1364.     /**
  1365.      * @Route(
  1366.      *      path          = "/run/updater/{clientToken}",
  1367.      *      name          = "runUpdater",
  1368.      *      methods       = {"GET"}
  1369.      * )
  1370.      */
  1371.     public function runUpdater(Request $request)
  1372.     {
  1373.         $token $request->headers->get('X-AUTH-TOKEN');
  1374.         if($token != $this->generalService->getTokenCron()){
  1375.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1376.         }
  1377.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1378.             return $this->eadResponse(nullErrorEnum::AUTH_INVALID);
  1379.         }
  1380.         $databaseManagerService $this->generalService->getService('DatabaseManagerService');
  1381.         $databaseManagerService->executeMigrations(true);
  1382.         return $this->eadResponse([
  1383.             "success" => ErrorEnum::YES,
  1384.         ]);
  1385.     }
  1386.     /**
  1387.      * @Route(
  1388.      *      path          = "/info",
  1389.      *      name          = "getInfo",
  1390.      *      methods       = {"GET"}
  1391.      * )
  1392.      */
  1393.     public function getInfo(Request $request)
  1394.     {
  1395.         $token $request->headers->get('X-AUTH-TOKEN');
  1396.         if($token != $this->generalService->getTokenCron()){
  1397.             throw new AuthInvalidException('Auth Invalid');
  1398.         }
  1399.         $domains = [
  1400.             $this->client->getDomainPrimary(),
  1401.         ];
  1402.         if(!empty($this->client->getDomainSecondary())){
  1403.             $domains[] = $this->client->getDomainSecondary();
  1404.         }
  1405.         $plan $this->configuration->getPlan();
  1406.         $data = [
  1407.             "id" => $this->client->getClientId(),
  1408.             "planId" => $plan->getId(),
  1409.             "planTitle" => $plan->getTitle(),
  1410.             "urls" => $domains,
  1411.             "limit" => $plan->getLimitSimultaneousAccess(),
  1412.         ];
  1413.         return new HttpOk($data);
  1414.     }
  1415.     /**
  1416.      * @Route(
  1417.      *      path          = "/info/course/{clientToken}",
  1418.      *      name          = "getInfoCourse",
  1419.      *      methods       = {"GET"}
  1420.      * )
  1421.      */
  1422.     public function getInfoCourse(Request $request)
  1423.     {
  1424.         $token $request->headers->get('X-AUTH-TOKEN');
  1425.         if($token != $this->generalService->getTokenCron()){
  1426.             throw new AuthInvalidException('Auth Invalid');
  1427.         }
  1428.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1429.             throw new AuthInvalidException('Auth Invalid');
  1430.         }
  1431.         $courseRepository $this->em->getRepository(Course::class);
  1432.         $courses $courseRepository->findBy([
  1433.             "deleted" => CourseEnum::ITEM_NO_DELETED
  1434.         ]);
  1435.         $data = [];
  1436.         foreach ($courses as $key => $course) {
  1437.             $data[] = (object)[
  1438.                 "title" => $course->getTitle(),
  1439.             ];
  1440.         }
  1441.         return new HttpOk($data);
  1442.     }
  1443.     /**
  1444.      * @Route(
  1445.      *      path          = "/genereate/eadmin/sso/{clientToken}",
  1446.      *      name          = "genereateAdminSSO",
  1447.      *      methods       = {"POST"}
  1448.      * )
  1449.      *
  1450.      * @throws ActionInvalidException
  1451.      * @throws FieldException
  1452.      */
  1453.     public function genereateAdminSSO(Request $request)
  1454.     {
  1455.         $this->requestUtil->setRequest($request)->setData();
  1456.         $token $request->headers->get('X-AUTH-TOKEN');
  1457.         if($token != $this->generalService->getTokenCron()){
  1458.             throw new AuthInvalidException('Auth Invalid');
  1459.         }
  1460.         if($request->get('clientToken') != $this->clientConfig->getToken()){
  1461.             throw new AuthInvalidException('Auth Invalid');
  1462.         }
  1463.         $userId $this->requestUtil->getField('userId');
  1464.         if(empty($userId)){
  1465.             throw new FieldException("FieldException", [ "userId" => "User cannot be empty" ]);
  1466.         }
  1467.         $url $this->requestUtil->getField('url');
  1468.         $domain $request->getHost();
  1469.         $signDomain $this->generalService->signDataWithExpiration(md5($domain));
  1470.         $signId $this->generalService->signDataWithExpiration(md5($userId));
  1471.         $data = [
  1472.             "url" => "https://{$domain}/login/eadmin/sso/{$signId}/{$signDomain}?url={$url}",
  1473.         ];
  1474.         return new HttpOk($data);
  1475.     }
  1476. }