export async function searchProjectsFunc()

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