Files
freeCodeCamp/api/tools/exam-environment/generate/insert.ts
Shaun Hamilton 92b6ca5343 feat(api): add exam env attempts endpoints and fields (#59634)
Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com>
2025-07-16 11:35:12 -05:00

44 lines
974 B
TypeScript

import { readFile } from 'fs/promises';
import { ExamEnvironmentExam, PrismaClient } from '@prisma/client';
import { MONGOHQ_URL } from '../../../src/utils/env';
const args = process.argv.slice(2);
const EXAM_JSON_PATH = args[0];
const prisma = new PrismaClient({
datasources: {
db: {
url: MONGOHQ_URL
}
}
});
async function main() {
console.info('Connecting to cluster...');
await prisma.$connect();
console.info('Connected.');
if (!EXAM_JSON_PATH) {
throw Error('First argument must be the file path to the exam');
}
const exam_str = await readFile(EXAM_JSON_PATH, 'utf-8');
const exam = JSON.parse(exam_str) as ExamEnvironmentExam;
try {
const res = await prisma.examEnvironmentExam.create({
data: exam
});
console.info(
`Exam "${res.config.name}" has been assigned id: "${res.id}".`
);
} catch (e) {
console.error('Unable to insert exam due to:');
console.error(e);
}
}
void main();