th-multi-tenancy.ts 899 Bytes
import { requestClient } from '#/api/request';

export interface ThTenantSelectDto {
  id: string;
  name: string;
}

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>),
  );
}

/** 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);
}