in operations/projex/project.ts [32:102]
export async function searchProjectsFunc(
organizationId: string,
name?: string,
status?: string,
createdAfter?: string,
createdBefore?: string,
creator?: string,
admin?: string,
logicalStatus?: string,
advancedConditions?: string,
extraConditions?: string,
orderBy?: string, // Possible values: "gmtCreate", "name"
page?: number,
perPage?: number,
sort?: string // Possible values: "desc", "asc"
): Promise<z.infer<typeof ProjectInfoSchema>[]> {
const url = `/oapi/v1/projex/organizations/${organizationId}/projects:search`;
// Prepare payload
const payload: Record<string, any> = {};
// Process condition parameters
const conditions = buildProjectConditions({
name,
status,
createdAfter,
createdBefore,
creator,
admin,
logicalStatus,
advancedConditions
});
if (conditions) {
payload.conditions = conditions;
}
// Add other optional parameters
if (extraConditions) {
payload.extraConditions = extraConditions;
}
if (orderBy) {
payload.orderBy = orderBy;
}
if (page !== undefined) {
payload.page = page;
}
if (perPage !== undefined) {
payload.perPage = perPage;
}
if (sort) {
payload.sort = sort;
}
const response = await yunxiaoRequest(url, {
method: "POST",
body: payload,
});
// Ensure response is an array
if (!Array.isArray(response)) {
return [];
}
// Parse each project object
return response.map(project => ProjectInfoSchema.parse(project));
}