fix: avoid double paginated queries
This commit is contained in:
parent
f9a72c8154
commit
5f7ef3fd03
1 changed files with 38 additions and 44 deletions
|
|
@ -266,20 +266,17 @@ export async function fetchScopedTicketsByCreatedRange(
|
|||
const scopedCompanyId = resolveScopedCompanyId(viewer, companyId);
|
||||
const results: Doc<"tickets">[] = [];
|
||||
|
||||
await paginateTickets(
|
||||
() => {
|
||||
if (scopedCompanyId) {
|
||||
return ctx.db
|
||||
.query("tickets")
|
||||
.withIndex("by_tenant_company_created", (q) => {
|
||||
let range = q.eq("tenantId", tenantId).eq("companyId", scopedCompanyId);
|
||||
range = withLowerBound(range, "createdAt", startMs);
|
||||
range = withUpperBound(range, "createdAt", endMs);
|
||||
return range;
|
||||
})
|
||||
.order("desc");
|
||||
}
|
||||
return ctx.db
|
||||
const query = scopedCompanyId
|
||||
? ctx.db
|
||||
.query("tickets")
|
||||
.withIndex("by_tenant_company_created", (q) => {
|
||||
let range = q.eq("tenantId", tenantId).eq("companyId", scopedCompanyId);
|
||||
range = withLowerBound(range, "createdAt", startMs);
|
||||
range = withUpperBound(range, "createdAt", endMs);
|
||||
return range;
|
||||
})
|
||||
.order("desc")
|
||||
: ctx.db
|
||||
.query("tickets")
|
||||
.withIndex("by_tenant_created", (q) => {
|
||||
let range = q.eq("tenantId", tenantId);
|
||||
|
|
@ -288,14 +285,14 @@ export async function fetchScopedTicketsByCreatedRange(
|
|||
return range;
|
||||
})
|
||||
.order("desc");
|
||||
},
|
||||
(ticket) => {
|
||||
const createdAt = typeof ticket.createdAt === "number" ? ticket.createdAt : null;
|
||||
if (createdAt === null) return;
|
||||
if (createdAt < startMs || createdAt >= endMs) return;
|
||||
results.push(ticket);
|
||||
},
|
||||
);
|
||||
|
||||
const snapshot = await query.collect();
|
||||
for (const ticket of snapshot) {
|
||||
const createdAt = typeof ticket.createdAt === "number" ? ticket.createdAt : null;
|
||||
if (createdAt === null) continue;
|
||||
if (createdAt < startMs || createdAt >= endMs) continue;
|
||||
results.push(ticket);
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
|
@ -311,20 +308,17 @@ export async function fetchScopedTicketsByResolvedRange(
|
|||
const scopedCompanyId = resolveScopedCompanyId(viewer, companyId);
|
||||
const results: Doc<"tickets">[] = [];
|
||||
|
||||
await paginateTickets(
|
||||
() => {
|
||||
if (scopedCompanyId) {
|
||||
return ctx.db
|
||||
.query("tickets")
|
||||
.withIndex("by_tenant_company_resolved", (q) => {
|
||||
let range = q.eq("tenantId", tenantId).eq("companyId", scopedCompanyId);
|
||||
range = withLowerBound(range, "resolvedAt", startMs);
|
||||
range = withUpperBound(range, "resolvedAt", endMs);
|
||||
return range;
|
||||
})
|
||||
.order("desc");
|
||||
}
|
||||
return ctx.db
|
||||
const query = scopedCompanyId
|
||||
? ctx.db
|
||||
.query("tickets")
|
||||
.withIndex("by_tenant_company_resolved", (q) => {
|
||||
let range = q.eq("tenantId", tenantId).eq("companyId", scopedCompanyId);
|
||||
range = withLowerBound(range, "resolvedAt", startMs);
|
||||
range = withUpperBound(range, "resolvedAt", endMs);
|
||||
return range;
|
||||
})
|
||||
.order("desc")
|
||||
: ctx.db
|
||||
.query("tickets")
|
||||
.withIndex("by_tenant_resolved", (q) => {
|
||||
let range = q.eq("tenantId", tenantId);
|
||||
|
|
@ -333,14 +327,14 @@ export async function fetchScopedTicketsByResolvedRange(
|
|||
return range;
|
||||
})
|
||||
.order("desc");
|
||||
},
|
||||
(ticket) => {
|
||||
const resolvedAt = typeof ticket.resolvedAt === "number" ? ticket.resolvedAt : null;
|
||||
if (resolvedAt === null) return;
|
||||
if (resolvedAt < startMs || resolvedAt >= endMs) return;
|
||||
results.push(ticket);
|
||||
},
|
||||
);
|
||||
|
||||
const snapshot = await query.collect();
|
||||
for (const ticket of snapshot) {
|
||||
const resolvedAt = typeof ticket.resolvedAt === "number" ? ticket.resolvedAt : null;
|
||||
if (resolvedAt === null) continue;
|
||||
if (resolvedAt < startMs || resolvedAt >= endMs) continue;
|
||||
results.push(ticket);
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue