import { apiRequest } from '@/lib/api/client'; import type { AuthUser, LoginPayload, PasswordResetRequestPayload, RegisterPayload, } from '@/types/auth'; export function getCurrentUser() { return apiRequest('/user/self'); } export function login(payload: LoginPayload) { return apiRequest('/user/login', { method: 'POST', body: JSON.stringify(payload), }); } export function logout() { return apiRequest('/user/logout'); } export function register(payload: RegisterPayload, turnstileToken?: string) { const query = turnstileToken ? `?turnstile=${encodeURIComponent(turnstileToken)}` : ''; return apiRequest(`/user/register${query}`, { method: 'POST', body: JSON.stringify(payload), }); } export function sendEmailVerification(email: string, turnstileToken?: string) { const searchParams = new URLSearchParams({ email }); if (turnstileToken) { searchParams.set('turnstile', turnstileToken); } return apiRequest(`/verification?${searchParams.toString()}`); } export function sendPasswordResetEmail(email: string, turnstileToken?: string) { const searchParams = new URLSearchParams({ email }); if (turnstileToken) { searchParams.set('turnstile', turnstileToken); } return apiRequest(`/reset_password?${searchParams.toString()}`); } export function resetPassword(payload: PasswordResetRequestPayload) { return apiRequest('/user/reset', { method: 'POST', body: JSON.stringify(payload), }); } export function exchangeGitHubCode(code: string) { return apiRequest(`/oauth/github?code=${encodeURIComponent(code)}`); }