refactor(vimp): 拆分站点模型为 VimpRawSite / VimpSite 并归一化 online 字段
- 将 VimpStation 重命名为 VimpSite,统一"站点"语义贯穿全模块 - 新增 VimpRawSite 表示 /catalog/allDevice 接口原样数据,online 字段可选 - 抽离 normalizeVimpSite 纯函数,集中处理 online 字段缺失时的默认值 - catalogAllDeviceApi 入参改为 VimpRawSite[],出参统一归一化为 VimpSite[] | null - 下游 store、composable、树节点类型同步从 VimpStation 切换到 VimpSite - 内部业务模型保持 online: boolean 必填,避免缺失字段沿调用链向下传播
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { unwrapVimpResponse, vimpClient } from '../client';
|
||||
import type { VimpStation } from '../model';
|
||||
import { normalizeVimpSite, type VimpRawSite } from '../model';
|
||||
|
||||
export const catalogAllDeviceApi = async (options?: { signal?: AbortSignal }) => {
|
||||
const { signal } = options ?? {};
|
||||
const client = vimpClient;
|
||||
const endpoint = `/catalog/allDevice`;
|
||||
const resp = await client.post<VimpStation[]>(endpoint, {}, { signal });
|
||||
const resp = await client.post<VimpRawSite[]>(endpoint, {}, { signal });
|
||||
const data = unwrapVimpResponse(resp);
|
||||
return data;
|
||||
return data?.map(normalizeVimpSite) ?? null;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user