Files
web-antrean/server/api/users/sync.post.ts
2026-01-06 15:34:11 +07:00

43 lines
1.3 KiB
TypeScript

// server/api/users/sync.post.ts
// Auto-save/update user data when they first login
// This endpoint will be called automatically when user logs in
export default defineEventHandler(async (event) => {
console.log("🔄 User sync endpoint called");
const { getSessionFromCookie } = await import('~/server/utils/sessionStore');
const session = await getSessionFromCookie(event);
if (!session) {
throw createError({
statusCode: 401,
statusMessage: "No session found or session expired",
});
}
try {
// Use the shared sync utility
// Use session createdAt as loginTime, or current time if not available
const { syncUserFromTokens } = await import('~/server/utils/userSync');
const loginTime = session.createdAt || Date.now();
console.log("🔄 Syncing user from session...");
console.log(" Session createdAt:", session.createdAt);
console.log(" Login time:", loginTime);
const result = syncUserFromTokens(session.idToken, session.accessToken, loginTime);
console.log(`✅ Sync result: ${result.action} - ${result.message}`);
return result;
} catch (error: any) {
console.error("❌ Error syncing user:", error);
throw createError({
statusCode: 500,
statusMessage: error.message || "Failed to sync user data",
});
}
});