Add a verification interface for review

This commit is contained in:
Dominic Ferrando
2026-09-19 17:57:52 -04:00
parent f593aabd25
commit dc7ebd6873
6 changed files with 772 additions and 4 deletions
+47 -4
View File
@@ -59,17 +59,60 @@ export class VerificationsService {
.executeTakeFirstOrThrow();
}
// Joined with the assessment being verified, since reviewing a request
// requires seeing the player's claimed performance alongside the videos.
private static baseQuery() {
return db.selectFrom("verifications")
.innerJoin("assessments", "assessments.id", "verifications.assessment_id")
.select([
"verifications.id",
"verifications.assessment_id",
"verifications.status",
"verifications.created_at",
"verifications.completed_at",
"verifications.completed_by",
"verifications.reviewer_notes",
"verifications.url_back_squat",
"verifications.url_deadlift",
"verifications.url_bench_press",
"verifications.url_broad_jump",
"verifications.url_run",
"verifications.url_cone_drill",
"verifications.verf_back_squat",
"verifications.verf_deadlift",
"verifications.verf_bench_press",
"verifications.verf_broad_jump",
"verifications.verf_run",
"verifications.verf_cone_drill",
"assessments.name",
"assessments.gender",
"assessments.age",
"assessments.weight",
"assessments.perf_back_squat",
"assessments.perf_deadlift",
"assessments.perf_bench_press",
"assessments.perf_broad_jump",
"assessments.perf_run",
"assessments.perf_cone_drill",
]);
}
async get(id: string) {
return await VerificationsService.baseQuery()
.where("verifications.id", "=", id)
.executeTakeFirst();
}
async list(opt: {
filter?: { status?: VerificationStatus },
limit?: number,
offset?: number,
} = {}) {
return await db.selectFrom("verifications")
.selectAll()
return await VerificationsService.baseQuery()
.$if(opt.filter?.status !== undefined, (qb) => qb
.where("status", "=", opt.filter!.status!)
.where("verifications.status", "=", opt.filter!.status!)
)
.orderBy("created_at", "desc")
.orderBy("verifications.created_at", "desc")
.$if(opt.limit !== undefined, (qb) => qb.limit(opt.limit!))
.$if(opt.offset !== undefined, (qb) => qb.offset(opt.offset!))
.execute();