Files

50 lines
1.1 KiB
TypeScript

import {
apiRequest,
clearTokens,
setTokens,
} from "@/lib/meshkee-api";
import type { LoginResponse, MeResponse } from "@/types/auth";
export async function login(cellNumber: string, password: string) {
const data = await apiRequest<LoginResponse>("/auth/login", {
method: "POST",
body: { cellNumber, password },
});
setTokens(data.accessToken, data.refreshToken);
return data;
}
export type RegisterPayload = {
cellNumber: string;
password: string;
firstName: string;
lastName: string;
email?: string;
domain: string;
};
export async function register(payload: RegisterPayload) {
const data = await apiRequest<LoginResponse & { requiresOtp?: boolean }>(
"/auth/register",
{
method: "POST",
body: payload,
},
);
if (data.accessToken && data.refreshToken) {
setTokens(data.accessToken, data.refreshToken);
}
return data;
}
export async function fetchCurrentUser(signal?: AbortSignal) {
return apiRequest<MeResponse>("/auth/me", { auth: true, signal });
}
export function logout() {
clearTokens();
}