import { BaseApiClient } from '../base/BaseApiClient'; import type { LoginParamsDto, SignupParamsDto, SessionDataDto, } from '../../dtos'; /** * Auth API Client * * Handles all authentication-related API operations. */ export class AuthApiClient extends BaseApiClient { /** Sign up with email */ signup(params: SignupParamsDto): Promise { return this.post('/auth/signup', params); } /** Login with email */ login(params: LoginParamsDto): Promise { return this.post('/auth/login', params); } /** Get current session */ getSession(): Promise { return this.get('/auth/session'); } /** Logout */ logout(): Promise { return this.post('/auth/logout', {}); } /** Start iRacing auth redirect */ getIracingAuthUrl(returnTo?: string): string { const baseUrl = process.env.NEXT_PUBLIC_API_BASE_URL || 'http://localhost:3001'; const params = returnTo ? `?returnTo=${encodeURIComponent(returnTo)}` : ''; return `${baseUrl}/auth/iracing/start${params}`; } }