File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
'use server';
import { unstable_rethrow } from 'next/navigation';
import { verifySession } from '@/lib/auth/dal';
import { markNotificationRead } from '@/lib/data/repositories/notification-repository';
export type NotificationActionResult =
| { status: 'success' }
| { status: 'error'; message: string };
export async function markNotificationReadAction(
id: string
): Promise<NotificationActionResult> {
await verifySession();
if (!id) {
return { status: 'error', message: '요청이 올바르지 않습니다.' };
}
try {
await markNotificationRead(id);
return { status: 'success' };
} catch (error) {
// 이슈: 세션이 밀렸을 때 backendFetch가 던지는 redirect를 이 catch가 삼키면 안 된다.
unstable_rethrow(error);
return {
status: 'error',
message:
error instanceof Error && error.message
? error.message
: '알림을 읽음 처리하지 못했습니다.',
};
}
}