Skip to content

Commit 6f9bb04

Browse files
committed
Add rate limiter
1 parent bf544e3 commit 6f9bb04

File tree

3 files changed

+30
-19
lines changed

3 files changed

+30
-19
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"C0deM1ner\\LaravelTelegramLogger\\": "src"
2020
},
2121
"files": [
22-
"src/helpers.php"
22+
"src/helpers.php"
2323
]
2424
},
2525
"extra": {

src/Providers/TelegramLoggerServiceProvider.php

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,17 @@ class TelegramLoggerServiceProvider extends ServiceProvider
1313
* Register any application services.
1414
*
1515
* @return void
16-
* @throws Throwable
1716
*/
1817
public function register(): void
1918
{
20-
$errorCodes = config('telegram-logger.log_errors');
21-
22-
if (count($errorCodes) > 0 && !$this->app->runningInConsole()) {
23-
app(ExceptionHandler::class)->reportable(function (Throwable $e) use ($errorCodes) {
24-
if (method_exists($e, 'getStatusCode')) {
25-
$code = $e->getStatusCode();
26-
27-
} else {
28-
$code = 500;
29-
}
30-
31-
32-
if (in_array($code, $errorCodes)) {
33-
telegramLog()->error($e->getMessage());
34-
}
35-
});
36-
}
19+
//
3720
}
3821

3922
/**
4023
* Bootstrap any application services.
4124
*
4225
* @return void
26+
* @throws Throwable
4327
*/
4428
public function boot(): void
4529
{
@@ -62,5 +46,22 @@ public function boot(): void
6246
SendTestMessageCommand::class,
6347
]);
6448
}
49+
50+
$errorCodes = config('telegram-logger.log_errors');
51+
52+
if (count($errorCodes) > 0 && !$this->app->runningInConsole()) {
53+
app(ExceptionHandler::class)->reportable(function (Throwable $e) use ($errorCodes) {
54+
if (method_exists($e, 'getStatusCode')) {
55+
$code = $e->getStatusCode();
56+
57+
} else {
58+
$code = 500;
59+
}
60+
61+
if (in_array($code, $errorCodes)) {
62+
telegramLog()->error($e->getMessage());
63+
}
64+
});
65+
}
6566
}
6667
}

src/Telegram/TelegramBotApi.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use C0deM1ner\LaravelTelegramLogger\Telegram\Exceptions\TelegramBotApiException;
66
use Illuminate\Support\Facades\Http;
7+
use Illuminate\Support\Facades\RateLimiter;
78
use Throwable;
89

910
class TelegramBotApi
@@ -18,6 +19,15 @@ class TelegramBotApi
1819
*/
1920
public static function sendMessage(string $token, string $chatId, string $text = ''): bool
2021
{
22+
$key = 'telegram_logger';
23+
24+
if (RateLimiter::tooManyAttempts($key, 5)) {
25+
info('Telegram rate limit exceeded');
26+
return false;
27+
}
28+
29+
RateLimiter::hit($key);
30+
2131
try {
2232
$url = self::HOST . $token . '/sendMessage';
2333

0 commit comments

Comments
 (0)