import { toast } from 'vue-sonner'; import type { ApiResponse } from '~/types/api'; import { getAuthSessionData } from './getSession'; export async function loginUser( email: string, password: string ): Promise<{ success: boolean }> { console.log('logging in...', email, password); const { data, error } = await useFetch>( getApiUrl('auth/login'), { method: 'POST', headers: { 'content-type': 'application/json', }, body: JSON.stringify({ email: email, password: password, }), responseType: 'json', } ); if (data.value == null) { toast.error('Login', { description: error.value?.data ?? 'Failed to login', }); return { success: false, }; } // TODO: Get this data directly from the login request const sessionData = await getAuthSessionData({ sessionType: 'WarrenAuth', sessionId: data.value.data.token, }); if (!sessionData.success) { return { success: false, }; } useAuthSession().value = { type: 'WarrenAuth', id: data.value.data.token, user: sessionData.user, expiresAt: sessionData.expiresAt, }; toast.success('Login', { description: `Successfully logged in`, }); return { success: true, }; }