Files
warren/frontend/lib/api/auth/getSession.ts
2025-07-21 19:27:41 +02:00

45 lines
1.1 KiB
TypeScript

import type { AuthSessionType, AuthUser } from '#shared/types/auth';
import type { ApiResponse } from '#shared/types/api';
export async function getAuthSessionData(params: {
sessionType: AuthSessionType;
sessionId: string;
}): Promise<
| { success: true; user: AuthUser; expiresAt: number }
| { success: false; code: number }
> {
const { data, error, status } = await useFetch<
ApiResponse<{
user: AuthUser;
expiresAt: number;
}>
>(getApiUrl('auth/session'), {
method: 'GET',
key: new Date().getTime().toString(),
headers: {
authorization: `${params.sessionType} ${params.sessionId}`,
},
});
if (status.value !== 'success' || data.value == null) {
return {
success: false,
code: error.value?.statusCode ?? 400,
};
}
const { id, name, email, admin } = data.value.data.user;
const expiresAt = data.value.data.expiresAt;
return {
success: true,
user: {
id,
name,
email,
admin,
},
expiresAt,
};
}