diff --git a/src/actions/report.ts b/src/actions/report.ts index cf89067..a13dc61 100644 --- a/src/actions/report.ts +++ b/src/actions/report.ts @@ -154,7 +154,7 @@ export const report = { } }); - if (input.status === 'closed' && preReportStrike?.strikeReasonId != input.strikeReasonId) { + if (input.status === 'closed' && preReportStrike?.strikeReason?.id != input.strikeReasonId) { const report = await db.getReportById({ id: input.reportId }); if (report.reported) { const strikes = await db.getStrikesByTeamId({ teamId: report.reported.id }); diff --git a/src/db/schema/strike.ts b/src/db/schema/strike.ts index 2a86a9a..887a19e 100644 --- a/src/db/schema/strike.ts +++ b/src/db/schema/strike.ts @@ -3,6 +3,7 @@ import { strikeReason } from '@db/schema/strikeReason.ts'; import type { MySql2Database } from 'drizzle-orm/mysql2'; import { eq } from 'drizzle-orm'; import { report } from '@db/schema/report.ts'; +import { strikeReasons } from '@app/admin/strikeReasons/strikeReasons.ts'; type Database = MySql2Database<{ strike: typeof strike }>; @@ -47,12 +48,16 @@ export async function editStrike(db: Database, values: EditStrikeReq) { } export async function getStrikeByReportId(db: Database, values: GetStrikeByReportIdReq) { - return db.query.strike.findFirst({ - with: { - strikeReason: true - }, - where: eq(strike.reportId, values.reportId) - }); + const strikes = await db + .select({ + strike, + strikeReason + }) + .from(strike) + .where(eq(strike.reportId, values.reportId)) + .leftJoin(strikeReason, eq(strike.strikeReasonId, strikeReason.id)); + + return strikes[0] ?? null; } export async function getStrikesByTeamId(db: Database, values: GetStrikesByTeamIdReq) {