src/Controller/TestApiController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\AutorizationStatusRepository;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Contracts\HttpClient\HttpClientInterface;
  8. class TestApiController extends AbstractController
  9. {
  10.     private $client;
  11.     public function __construct(HttpClientInterface $client)
  12.     {
  13.         $this->client $client;
  14.     }
  15.     #[Route('/test/api/{name}'name'app_test_api')]
  16.     public function index(string $name '',AutorizationStatusRepository $autorizationStatus): Response
  17.     {
  18.         define('TOKEN''5749519723:AAGtXtempHM2pLa1kWLCarVBuK_PPdbXcu4');
  19.         $statuses =  $autorizationStatus->findOneBy(['id' => $name]);
  20.         $this->sendOneReport($statuses);
  21.         return $this->render('test_api/index.html.twig', [
  22.             'controller_name' => 'TestApiController',
  23.         ]);
  24.     }
  25.     public function sendOneReport($status)
  26.     {
  27.         $login $status->getLogin();
  28.         $password $status->getPassword();
  29.         $cid $status->getCid();
  30. //        echo "LOGIN $login  \n";
  31. //        echo "PASSWORD $password  \n";
  32. //        echo "CID $cid  \n";
  33. //
  34. //        exit();
  35.         if(!is_numeric($cid)){
  36.             return;
  37.         }
  38.         $authorization 'Basic ' base64_encode($login ':' $password);
  39.         $urlForRequest 'https://cid' $cid '.core12.ru/api/telegram-bot-get-data';
  40.         $urlForMessage 'https://cid' $cid '.core12.ru';
  41.         $response $this->client->request('GET'$urlForRequest, [
  42.                 'headers' => [
  43.                     'authorization' => $authorization,
  44.                 ],
  45.             ]
  46.         );
  47.         try {
  48.             $response->getStatusCode();
  49.         } catch (\Exception $e) {
  50.             return;
  51.         }
  52.         $statusCode $response->getStatusCode();
  53. //        echo $statusCode . "\n";
  54.         if($statusCode == 200){
  55.             $preDataForSend $response->toArray();
  56.             $revenue number_format($preDataForSend['sumPayYesterday']['sumOfPay'],0,'',' ') . " &#8381";
  57.             $totalSalary =  number_format($preDataForSend['sumManagerSalaryYesterday']['sumOfSalaryManager'] + $preDataForSend['doerReward']['sumOfSalaryDoer'],0,'',' ') . " &#8381";
  58.             $dataForSend "<b>Ежедневный отчет Core12</b> \n\n" $preDataForSend['yesterday'] .
  59.                 "\n\n" "<b>" $preDataForSend['street'] . "</b>" .
  60.                 "\n\n" .
  61.                 "Выручка "  "<b>" $revenue "</b>" "\n" .
  62.                 "Выплаты сотрудникам " "<b>" $totalSalary "</b>" "\n" .
  63.                 "Клиенты " "<b>" $preDataForSend['quantityClientYesterday']['quantityClient'] . "</b>" "\n" .
  64.                 "Новые клиенты " "<b>" $preDataForSend['newClientYesterday'] . "</b>" "\n" .
  65.                 "Подозрительные события " "<b>" $preDataForSend['sumSuspicious']['sumSuspicious'] . "</b>" "\n" .
  66.                 "Негативные отзывы " "<b>" $preDataForSend['negativeFeedback']['rating'] . "</b>" "\n" .
  67.                 "#отчетизcore12"
  68.             ;
  69.             $UrlOfCid = [
  70.                 'inline_keyboard' => [[[
  71.                     "text" => "Перейти в личный кабинет",
  72.                     "url" => $urlForMessage
  73.                 ]]]
  74.             ];
  75.         }
  76.         else{
  77.             $dataForSend 'Введены неверные учетные данные';
  78.         }
  79.         $idInTelegram $status->getChatId();
  80.         $ch curl_init();
  81.         $ch_post = [
  82.             CURLOPT_URL => 'https://api.telegram.org/bot' TOKEN '/sendMessage',
  83.             CURLOPT_POST => TRUE,
  84.             CURLOPT_RETURNTRANSFER => TRUE,
  85.             CURLOPT_TIMEOUT => 10,
  86.             CURLOPT_POSTFIELDS => [
  87.                 'chat_id' => $idInTelegram,
  88.                 'parse_mode' => 'HTML',
  89.                 'text' => $dataForSend,
  90.                 'reply_markup' => json_encode($UrlOfCid)
  91.             ]
  92.         ];
  93.         curl_setopt_array($ch$ch_post);
  94.         curl_exec($ch);
  95.     }
  96. }