fix(WEB): today-issue API에서 redirect 에러 전파 처리

- ServerApiClient가 401 시 /login으로 redirect하는데
  catch 블록에서 redirect 에러를 잡아버리는 문제 수정
- isNextRedirectError 체크하여 redirect는 전파하도록 변경
This commit is contained in:
2026-01-22 19:56:06 +09:00
parent 14186d98c0
commit fd951f81f2

View File

@@ -7,6 +7,7 @@
import { apiClient } from './index';
import { AuthError } from './errors';
import { isNextRedirectError } from '@/lib/utils/redirect-error';
import type {
ApiResponse,
TodayIssueUnreadResponse,
@@ -40,6 +41,11 @@ export async function getUnreadTodayIssues(limit: number = 10): Promise<ApiRespo
);
return response;
} catch (error) {
// Next.js redirect 에러는 전파 (ServerApiClient가 로그인 페이지로 리다이렉트)
if (isNextRedirectError(error)) {
throw error;
}
console.error('[TodayIssue] getUnreadTodayIssues error:', error);
// 인증 에러인 경우 authError 플래그 설정
@@ -71,6 +77,7 @@ export async function getUnreadTodayIssueCount(): Promise<ApiResponse<TodayIssue
);
return response;
} catch (error) {
if (isNextRedirectError(error)) throw error;
console.error('[TodayIssue] getUnreadTodayIssueCount error:', error);
return {
success: false,
@@ -91,6 +98,7 @@ export async function markTodayIssueAsRead(id: number): Promise<ApiResponse<null
);
return response;
} catch (error) {
if (isNextRedirectError(error)) throw error;
console.error('[TodayIssue] markTodayIssueAsRead error:', error);
return {
success: false,
@@ -110,6 +118,7 @@ export async function markAllTodayIssuesAsRead(): Promise<ApiResponse<TodayIssue
);
return response;
} catch (error) {
if (isNextRedirectError(error)) throw error;
console.error('[TodayIssue] markAllTodayIssuesAsRead error:', error);
return {
success: false,