Don’t get subtasks by default when using GET on API tasks

This commit is contained in:
Matt Aitken
2023-07-23 15:41:13 +01:00
parent 078b10ccea
commit df68305f28
2 changed files with 11 additions and 3 deletions
@@ -26,6 +26,7 @@ const HeadersSchema = z.object({
const SearchQuerySchema = z.object({
cursor: z.string().optional(),
take: z.coerce.number().default(50),
subtasks: z.coerce.boolean().default(false),
});
export async function loader({ request, params }: LoaderArgs) {
@@ -87,7 +88,9 @@ export async function loader({ request, params }: LoaderArgs) {
return json({ message: "Run not found" }, { status: 404 });
}
const tasks = taskListToTree(jobRun.tasks.slice(0, query.take));
const selectedTasks = jobRun.tasks.slice(0, query.take);
const tasks = taskListToTree(selectedTasks, query.subtasks);
const nextTask = jobRun.tasks[query.take];
return json({
+7 -2
View File
@@ -1,9 +1,14 @@
type InputType = { id: string; parentId: string | null };
type OutputType<T> = T & { subtasks?: T[] };
export type OutputType<T> = T & { subtasks?: T[] };
export function taskListToTree<T extends InputType>(
tasks: T[]
tasks: T[],
addSubtasks = true
): OutputType<T>[] {
if (!addSubtasks) {
return tasks;
}
const result: OutputType<T>[] = [];
const map = new Map<string, T>(tasks.map((v) => [v.id, v]));