feat:FCM 에러 토큰 전체삭제 버튼 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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 테스트 발송 페이지
|
||||
*/
|
||||
|
||||
@@ -87,6 +87,22 @@ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none foc
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- 에러 토큰 전체삭제 -->
|
||||
@if($stats['has_error'] > 0)
|
||||
<div class="flex items-center justify-between bg-red-50 border border-red-200 rounded-lg px-4 py-3 mb-4">
|
||||
<span class="text-sm text-red-700">
|
||||
에러 토큰 <strong>{{ $stats['has_error'] }}건</strong>이 있습니다.
|
||||
</span>
|
||||
<button
|
||||
hx-delete="{{ route('fcm.tokens.deleteError') }}"
|
||||
hx-confirm="에러 토큰 {{ $stats['has_error'] }}건을 모두 삭제하시겠습니까?"
|
||||
class="bg-red-600 hover:bg-red-700 text-white text-sm px-4 py-1.5 rounded-lg transition font-medium"
|
||||
>
|
||||
에러 토큰 전체삭제
|
||||
</button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<!-- 테이블 -->
|
||||
<div class="bg-white rounded-lg shadow-sm overflow-hidden">
|
||||
<div id="table-container">
|
||||
|
||||
@@ -672,6 +672,7 @@
|
||||
Route::get('/tokens/stats', [FcmController::class, 'tokenStats'])->name('tokens.stats');
|
||||
Route::post('/tokens/{id}/toggle', [FcmController::class, 'toggleToken'])->name('tokens.toggle');
|
||||
Route::delete('/tokens/{id}', [FcmController::class, 'deleteToken'])->name('tokens.delete');
|
||||
Route::delete('/tokens-error/bulk', [FcmController::class, 'deleteErrorTokens'])->name('tokens.deleteError');
|
||||
|
||||
// 테스트 발송
|
||||
Route::get('/send', [FcmController::class, 'send'])->name('send');
|
||||
|
||||
Reference in New Issue
Block a user