in operations/flow/pipeline.ts [320:388]
export async function listPipelineRunsFunc(
organizationId: string,
pipelineId: string,
options?: Omit<ListPipelineRunsOptions, 'organizationId' | 'pipelineId'>
): Promise<{
items: PipelineRunListItem[],
pagination: {
nextPage: number | null,
page: number,
perPage: number,
prevPage: number | null,
total: number,
totalPages: number
}
}> {
const baseUrl = `/oapi/v1/flow/organizations/${organizationId}/pipelines/${pipelineId}/runs`;
// 构建查询参数
const queryParams: Record<string, string | number | undefined> = {};
if (options?.perPage !== undefined) {
queryParams.perPage = options.perPage;
}
if (options?.page !== undefined) {
queryParams.page = options.page;
}
if (options?.startTime !== undefined) {
queryParams.startTime = utils.convertToTimestamp(options.startTime);
}
if (options?.endTime !== undefined) {
queryParams.endTme = utils.convertToTimestamp(options.endTime);
}
if (options?.status !== undefined) {
queryParams.status = options.status;
}
if (options?.triggerMode !== undefined) {
queryParams.triggerMode = options.triggerMode;
}
const url = utils.buildUrl(baseUrl, queryParams);
const response = await utils.yunxiaoRequest(url, {
method: "GET",
});
const pagination = {
nextPage: null as number | null,
page: options?.page ?? 1,
perPage: options?.perPage ?? 10,
prevPage: null as number | null,
total: 0,
totalPages: 0
};
let items: PipelineRunListItem[] = [];
if (Array.isArray(response)) {
items = response.map(item => PipelineRunListItemSchema.parse(item));
}
return {
items,
pagination
};
}