ignore folder
This commit is contained in:
41
services/auth.ts
Normal file
41
services/auth.ts
Normal file
@ -0,0 +1,41 @@
|
||||
import { ApiResponse, LoginRequest, LoginResponseData, UserProfile, TenantContextResponse } from "@/types/api";
|
||||
import { apiClient, unwrap } from "./api";
|
||||
|
||||
export async function login(request: LoginRequest, tenantId: string): Promise<LoginResponseData> {
|
||||
const response = await apiClient.post<ApiResponse<LoginResponseData>>(
|
||||
"/api/auth/login",
|
||||
request,
|
||||
{
|
||||
headers: { "X-Tenant-Id": tenantId }
|
||||
}
|
||||
);
|
||||
const payload = response.data;
|
||||
if (!payload.success) {
|
||||
throw new Error(payload.message);
|
||||
}
|
||||
return payload.data;
|
||||
}
|
||||
|
||||
export async function refreshToken(refreshToken: string) {
|
||||
const response = await apiClient.post<ApiResponse<LoginResponseData>>("/api/auth/refresh", {
|
||||
refreshToken
|
||||
});
|
||||
const payload = response.data;
|
||||
if (!payload.success) throw new Error(payload.message);
|
||||
return payload.data;
|
||||
}
|
||||
|
||||
export async function logout() {
|
||||
await unwrap<null>(apiClient.post<ApiResponse<null>>("/api/auth/logout"));
|
||||
}
|
||||
|
||||
export async function getCurrentUser(): Promise<ApiResponse<UserProfile>> {
|
||||
const response = await apiClient.get<ApiResponse<UserProfile>>("/api/users/me");
|
||||
return response.data;
|
||||
}
|
||||
|
||||
export async function getTenantContext(): Promise<TenantContextResponse> {
|
||||
const response = await apiClient.get<ApiResponse<TenantContextResponse>>("/api/tenant/context");
|
||||
if (!response.data.success) throw new Error(response.data.message);
|
||||
return response.data.data;
|
||||
}
|
||||
Reference in New Issue
Block a user