fix: bound leadership dashboard filtering
This commit is contained in:
1 parent
d034f649c4
commit
3062ed5f04
8 files changed
+389
-175
No files matched your search
+27
-13
@@ -186,7 +186,7 @@ const operationsDashboardQuerySchema = z.object({
|
||||
business_route_id: z.string().trim().max(120).optional(),
|
||||
status: z.enum(['all', 'active', 'completed', 'attention', 'failed', 'cancelled', 'archived']).default('all'),
|
||||
search: z.string().trim().max(200).optional(),
|
||||
limit: z.coerce.number().int().min(1).max(100).default(50),
|
||||
limit: z.coerce.number().int().min(1).max(100).default(20),
|
||||
offset: z.coerce.number().int().min(0).max(1_000_000).default(0)
|
||||
});
|
||||
|
||||
@@ -1357,19 +1357,33 @@ export async function buildServer({
|
||||
setAuthNoStore(reply);
|
||||
const session = await requireLeadershipSession(request);
|
||||
const query = operationsDashboardQuerySchema.parse(request.query || {});
|
||||
return {
|
||||
ok: true,
|
||||
...(await tasks.listOperationsDashboard(contextFor(session, request), {
|
||||
from: query.from,
|
||||
to: query.to,
|
||||
actorUserId: query.actor_user_id,
|
||||
businessRouteId: query.business_route_id,
|
||||
status: query.status,
|
||||
search: query.search,
|
||||
limit: query.limit,
|
||||
offset: query.offset
|
||||
}))
|
||||
const controller = new AbortController();
|
||||
const abortRequest = () => controller.abort();
|
||||
const abortClosedReply = () => {
|
||||
if (!reply.raw.writableEnded) abortRequest();
|
||||
};
|
||||
request.raw.once('aborted', abortRequest);
|
||||
reply.raw.once('close', abortClosedReply);
|
||||
if (request.raw.aborted) abortRequest();
|
||||
try {
|
||||
return {
|
||||
ok: true,
|
||||
...(await tasks.listOperationsDashboard(contextFor(session, request), {
|
||||
from: query.from,
|
||||
to: query.to,
|
||||
actorUserId: query.actor_user_id,
|
||||
businessRouteId: query.business_route_id,
|
||||
status: query.status,
|
||||
search: query.search,
|
||||
limit: query.limit,
|
||||
offset: query.offset,
|
||||
signal: controller.signal
|
||||
}))
|
||||
};
|
||||
} finally {
|
||||
request.raw.off('aborted', abortRequest);
|
||||
reply.raw.off('close', abortClosedReply);
|
||||
}
|
||||
});
|
||||
|
||||
app.get('/api/operations-dashboard/tasks/:taskId', async (request, reply) => {
|
||||
|
||||
Reference in new issue
Block a user