]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавление канала для прода
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 18 Nov 2024 10:47:35 +0000 (13:47 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 18 Nov 2024 10:47:35 +0000 (13:47 +0300)
erp24/actions/log/CollectAction.php
erp24/log/TelegramTarget.php
erp24/services/InfoLogService.php
erp24/services/LogService.php
erp24/services/TelegramService.php

index d055c8866ea2f738f640848479530106999e1dfa..d763be9de91e29da72897dac28157332c6f4ce3e 100755 (executable)
@@ -3,6 +3,7 @@ declare(strict_types = 1);
 
 namespace yii_app\actions\log;
 
+use Yii;
 use yii\base\Action;
 use yii_app\records\ErrorLog;
 use yii_app\services\TelegramService;
@@ -35,12 +36,16 @@ class CollectAction extends Action
                 return;
             }*/
 
+            $currentUrl = Yii::$app->request->getHostInfo();
+            $isDev = !str_contains($currentUrl, 'erp.erp-flowers.ru');
+
             // Формируем сообщение для отправки в Telegram с использованием MarkdownV2
             $errorMessage = "⚠️*Ошибка JavaScript Обнаружена*⚠️\n\n";
 
 
             if ($url = $this->controller->request->getReferrer()) {
                 $errorMessage .= "*URL:*\n```" . TelegramService::escapeMarkdownLog($url) . "```\n\n";
+                $isDev = !str_contains($url, 'erp.erp-flowers.ru');
             }
 
             if ($createdAt = date('Y-m-d H:i:s', $log->log_time)) {
@@ -80,7 +85,7 @@ class CollectAction extends Action
             $disableNotification = false;
 
             // Отправляем сообщение об ошибке в Telegram через TelegramService
-            TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification);
+            TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification, $isDev);
         }
     }
 
index 1a9ba738d82b7f85667240fc55a0c4cd36a09d02..d544fe075b5afbfa98501720330c279ea35dacfe 100644 (file)
@@ -107,7 +107,10 @@ class TelegramTarget extends \yii\log\Target
 
 
         $message = new Message($this->messages[0]);
-        $errorText = $message->getText();
+
+
+        $errorUrl = $message->getUrl();
+        $isDev = !str_contains($errorUrl, 'erp.erp-flowers.ru');
 
 
         // Проверка наличия подобных сообщений
@@ -140,7 +143,7 @@ class TelegramTarget extends \yii\log\Target
 
         // Отправка сообщения через TelegramService
         try {
-            TelegramService::sendErrorToTelegramMessage($formattedMessage, $disableNotification);
+            TelegramService::sendErrorToTelegramMessage($formattedMessage, $disableNotification, $isDev);
         } catch (\Exception $e) {
             throw new InvalidValueException(
                 'Unable to send logs to Telegram: ' . $e->getMessage(), $e->getCode()
index d9a0b7060412b110485b1c8ec5197ca079dfadec..889a11cd2815fdee853fe5d8e3b29e6451700249 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace yii_app\services;
 
+use Yii;
 use yii\db\Expression;
 use yii_app\records\InfoLog;
 
@@ -33,11 +34,12 @@ class InfoLogService
            /* if (!self::shouldSendToTelegram($file, $line, $messageText, $context)) {
                 return;
             }*/
-
-
+            $currentUrl = Yii::$app->request->getHostInfo();
+            $isDev = !str_contains($currentUrl, 'erp.erp-flowers.ru');
             $telegramMessage = "⚠️*Сообщение из InfoLog*⚠️\n\n";
 
 
+
             if ($file) {
                 $telegramMessage .= "*File:*\n```" . TelegramService::escapeMarkdownLog($file) . "```\n\n";
             }
@@ -57,7 +59,7 @@ class InfoLogService
 
             $disableNotification = false;
             // Отправляем сообщение в Telegram
-            TelegramService::sendErrorToTelegramMessage($telegramMessage, $disableNotification);
+            TelegramService::sendErrorToTelegramMessage($telegramMessage, $disableNotification, $isDev);
         }
     }
 
index 35cc19e2b764ffa396dd8591d072e5e2324e9b2e..1bd860acea26a59fb3037224f3920d8f9a395655 100644 (file)
@@ -67,13 +67,17 @@ class LogService
                 return;
             }*/
 
+            $currentUrl = Yii::$app->request->getHostInfo();
+            $isDev = !str_contains($currentUrl, 'erp.erp-flowers.ru');
 
-            // Форматирование сообщения об ошибке с условным добавлением строк
+                // Форматирование сообщения об ошибке с условным добавлением строк
             $errorMessage = "⚠️*Ошибка API Обнаружена*⚠️\n\n";
 
             // Добавляем строки только если параметры присутствуют
             if ($url = $apiErrorLog->url) {
                 $errorMessage .= "*URL:*\n```" . TelegramService::escapeMarkdownLog($url) . "```\n\n";
+                $errorUrl = $apiErrorLog->url;
+                $isDev = !str_contains($errorUrl, 'erp.erp-flowers.ru');
             }
 
             if ($createdAt = $apiErrorLog->created_at) {
@@ -91,7 +95,7 @@ class LogService
 
             $disableNotification = false;
             // Отправляем сообщение об ошибке в Telegram через TelegramService
-            TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification);
+            TelegramService::sendErrorToTelegramMessage($errorMessage, $disableNotification, $isDev);
 
 
         } else {
index e44af0cb3f9e5879d9e567fba820ab5e326d1582..110f5f0972cab8d2b541576c398493cab9659cce 100644 (file)
@@ -11,6 +11,7 @@ class TelegramService {
     const TELEGRAM_API_URL = "8063257458:AAGnMf4cxwJWlYLF1wS_arn4PrOaLs9ERQQ";
 
     const CHAT_CHANNEL_ID ="-1001861631125";
+    const CHAT_CHANNEL_ERP_ID ="-1002338329426";
     public static function sendMessage($admin_id, $message, $reply_markup = null) {
         $url = "https://api2.bazacvetov24.ru/telegram/send-message?admin_id=$admin_id&message=$message";
         if ($reply_markup) {
@@ -20,12 +21,20 @@ class TelegramService {
         return $client->request('GET', $url);
     }
 
-public static function sendErrorToTelegramMessage($message,$disableNotification)
+public static function sendErrorToTelegramMessage($message,$disableNotification, $isDev)
 {
     $botToken = self::TELEGRAM_API_URL;
-    $chatId = self::CHAT_CHANNEL_ID;
+    $chatIdDefault = self::CHAT_CHANNEL_ID;
+    $chatIdErp = self::CHAT_CHANNEL_ERP_ID;
     $apiURL = "https://api.telegram.org/bot{$botToken}/sendMessage";
 
+
+    if ($isDev) {
+        $chatId = $chatIdDefault;
+    } else  {
+        $chatId = $chatIdErp;
+    }
+
     $client = new Client();
     try {
         $client->post($apiURL, [