diff --git a/app/Http/Controllers/FcmController.php b/app/Http/Controllers/FcmController.php index 851a7e32..62f059bc 100644 --- a/app/Http/Controllers/FcmController.php +++ b/app/Http/Controllers/FcmController.php @@ -76,6 +76,24 @@ public function deleteToken(int $id): Response ->header('HX-Trigger', 'tokenDeleted'); } + /** + * 에러 토큰 전체 삭제 + */ + public function deleteErrorTokens(Request $request): Response + { + $query = PushDeviceToken::withoutGlobalScopes()->whereNotNull('last_error'); + + if ($tenantId = $request->get('tenant_id')) { + $query->where('tenant_id', $tenantId); + } + + $count = $query->count(); + $query->delete(); + + return response('', 200) + ->header('HX-Refresh', 'true'); + } + /** * FCM 테스트 발송 페이지 */ diff --git a/resources/views/fcm/tokens.blade.php b/resources/views/fcm/tokens.blade.php index 755642c6..93ab806d 100644 --- a/resources/views/fcm/tokens.blade.php +++ b/resources/views/fcm/tokens.blade.php @@ -87,6 +87,22 @@ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none foc + + @if($stats['has_error'] > 0) +