KrishnaCosmic commited on
Commit
4a0e5a2
·
1 Parent(s): 4d239f3

apply new changes

Browse files
Files changed (1) hide show
  1. src/lib/db/queries/issues.ts +18 -8
src/lib/db/queries/issues.ts CHANGED
@@ -8,7 +8,7 @@
8
 
9
  import { db } from "@/db";
10
  import { issues, triageData, repositories } from "@/db/schema";
11
- import { eq, and, desc, asc, count, or, like, sql } from "drizzle-orm";
12
  import { v4 as uuidv4 } from "uuid";
13
 
14
  // Define columns to select (excludes bodySummary which doesn't exist in DB yet)
@@ -178,7 +178,7 @@ export async function getIssues(filters: IssueFilters, page = 1, limit = 10) {
178
  const repoIds = userRepos.map(r => r.id);
179
 
180
  if (repoIds.length > 0) {
181
- conditions.push(sql`${issues.repoId} IN (${sql.join(repoIds.map(id => sql`'${id}'`), sql`, `)})`);
182
  } else {
183
  return { issues: [], total: 0, page: safePage, limit, totalPages: 0 };
184
  }
@@ -268,7 +268,7 @@ export async function getIssuesWithTriage(filters: IssueFilters, page = 1, limit
268
  const repoIds = userRepos.map(r => r.id);
269
 
270
  if (repoIds.length > 0) {
271
- conditions.push(sql`${issues.repoId} IN (${sql.join(repoIds.map(id => sql`'${id}'`), sql`, `)})`);
272
  } else {
273
  return { issues: [], total: 0, page: safePage, limit, totalPages: 0 };
274
  }
@@ -313,7 +313,7 @@ export async function getIssuesWithTriage(filters: IssueFilters, page = 1, limit
313
  const issueIds = issueResults.map(i => i.id);
314
  const triageDataResults = await db.select()
315
  .from(triageData)
316
- .where(sql`${triageData.issueId} IN (${sql.join(issueIds.map(id => sql`'${id}'`), sql`, `)})`);
317
 
318
  console.log("[getIssuesWithTriage] Found %d triage records", triageDataResults.length);
319
 
@@ -400,20 +400,30 @@ export async function getDashboardStats(userId: string) {
400
  }
401
 
402
  const repoIds = userRepos.map(r => r.id);
403
- const repoCondition = sql`${issues.repoId} IN (${sql.join(repoIds.map(id => sql`${id}`), sql`, `)})`;
404
 
405
  const openIssues = await db.select({ count: count() })
406
  .from(issues)
407
- .where(and(repoCondition, eq(issues.state, "open"), eq(issues.isPR, false)));
 
 
 
 
408
 
409
  const openPRs = await db.select({ count: count() })
410
  .from(issues)
411
- .where(and(repoCondition, eq(issues.state, "open"), eq(issues.isPR, true)));
 
 
 
 
412
 
413
  // Count triaged issues
414
  const allOpenIssueIds = await db.select({ id: issues.id })
415
  .from(issues)
416
- .where(and(repoCondition, eq(issues.state, "open")));
 
 
 
417
 
418
  let triaged = 0;
419
  for (const issue of allOpenIssueIds) {
 
8
 
9
  import { db } from "@/db";
10
  import { issues, triageData, repositories } from "@/db/schema";
11
+ import { eq, and, desc, asc, count, or, like, sql, inArray } from "drizzle-orm";
12
  import { v4 as uuidv4 } from "uuid";
13
 
14
  // Define columns to select (excludes bodySummary which doesn't exist in DB yet)
 
178
  const repoIds = userRepos.map(r => r.id);
179
 
180
  if (repoIds.length > 0) {
181
+ conditions.push(inArray(issues.repoId, repoIds));
182
  } else {
183
  return { issues: [], total: 0, page: safePage, limit, totalPages: 0 };
184
  }
 
268
  const repoIds = userRepos.map(r => r.id);
269
 
270
  if (repoIds.length > 0) {
271
+ conditions.push(inArray(issues.repoId, repoIds));
272
  } else {
273
  return { issues: [], total: 0, page: safePage, limit, totalPages: 0 };
274
  }
 
313
  const issueIds = issueResults.map(i => i.id);
314
  const triageDataResults = await db.select()
315
  .from(triageData)
316
+ .where(inArray(triageData.issueId, issueIds));
317
 
318
  console.log("[getIssuesWithTriage] Found %d triage records", triageDataResults.length);
319
 
 
400
  }
401
 
402
  const repoIds = userRepos.map(r => r.id);
 
403
 
404
  const openIssues = await db.select({ count: count() })
405
  .from(issues)
406
+ .where(and(
407
+ inArray(issues.repoId, repoIds),
408
+ eq(issues.state, "open"),
409
+ eq(issues.isPR, false)
410
+ ));
411
 
412
  const openPRs = await db.select({ count: count() })
413
  .from(issues)
414
+ .where(and(
415
+ inArray(issues.repoId, repoIds),
416
+ eq(issues.state, "open"),
417
+ eq(issues.isPR, true)
418
+ ));
419
 
420
  // Count triaged issues
421
  const allOpenIssueIds = await db.select({ id: issues.id })
422
  .from(issues)
423
+ .where(and(
424
+ inArray(issues.repoId, repoIds),
425
+ eq(issues.state, "open")
426
+ ));
427
 
428
  let triaged = 0;
429
  for (const issue of allOpenIssueIds) {