th-multi-tenancy.ts
1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import { requestClient } from '#/api/request';
export interface ThTenantSelectDto {
id: string;
name: string;
}
export interface ThCurrentTenantDto {
tenantId: string | null;
tenantName: string | null;
}
function normalizeTenantSelectItem(
raw: Record<string, unknown>,
): ThTenantSelectDto {
return {
id: String(raw.id ?? raw.Id ?? ''),
name: String(raw.name ?? raw.Name ?? ''),
};
}
function normalizeTenantSelectList(raw: unknown): ThTenantSelectDto[] {
const arr = Array.isArray(raw) ? raw : [];
return arr.map((x) =>
normalizeTenantSelectItem(x as Record<string, unknown>),
);
}
function normalizeCurrentTenant(raw: unknown): ThCurrentTenantDto {
const o =
raw && typeof raw === 'object' ? (raw as Record<string, unknown>) : {};
const tenantId = o.tenantId ?? o.TenantId;
const tenantName = o.tenantName ?? o.TenantName;
return {
tenantId: tenantId == null ? null : String(tenantId),
tenantName: tenantName == null ? null : String(tenantName),
};
}
/** GET /api/app/th-multi-tenancy/tenant-select */
export async function thTenantSelectList(): Promise<ThTenantSelectDto[]> {
const raw = await requestClient.get<unknown>(
'th-multi-tenancy/tenant-select',
{
errorMessageMode: 'none',
successMessageMode: 'none',
},
);
return normalizeTenantSelectList(raw);
}
/** GET /api/app/th-multi-tenancy/current-tenant */
export async function thCurrentTenant(): Promise<ThCurrentTenantDto> {
const raw = await requestClient.get<unknown>(
'th-multi-tenancy/current-tenant',
{
errorMessageMode: 'none',
successMessageMode: 'none',
},
);
return normalizeCurrentTenant(raw);
}