Commit 9322fc9c authored by Yechang's avatar Yechang
Browse files

chore: refine

parent 820ab583
Loading
Loading
Loading
Loading
Loading
+41 −39
Original line number Diff line number Diff line
@@ -16,6 +16,13 @@ export const createSubmission = async ({
	submitterId,
	volumeId
}: CreateSubmissionSchema) => {

	const file = await db.file.findFirst({
		where: { id: volumeId }
	})
	if (_.isNil(file)) {
		return null
	}
	const submission = await db.submission.create({
		data: {
			name: nanoid(),
@@ -28,10 +35,6 @@ export const createSubmission = async ({
		}
	});

	const file = await db.file.findFirst({
		where: { id: volumeId }
	})
	if (!_.isNil(file)) {
	const language = file.filename.endsWith("cpp") ? "cpp" : "java"
	const judgementArgs = judgementArgsSchema.parse(submission.problem.judgementArgs)

@@ -71,7 +74,6 @@ export const createSubmission = async ({
	const hash = nanoid()
	await redis.hset(`lms:task:hash`, hash, `${task.id}`)
	await redis.rpush(`lms:task:queue`, hash)
	}

	return submission;
};
+11 −9
Original line number Diff line number Diff line
@@ -9,20 +9,22 @@ import _ from 'lodash'
import { z } from 'zod'


const messageSchema = z.object({ data: z.string(), omittedLength: z.number() }).or(z.string())

const schema = z.discriminatedUnion('status', [
    z.object({
        compile: z.object({ success: z.literal(false), message: z.string() }),
        compile: z.object({ success: z.literal(false), message: messageSchema }),
        status: z.literal("CompilationError"),
        score: z.number(),
        totalOccupiedTime: z.number()
    }),
    z.object({
        status: z.literal('SystemError'),
        systemMessage: z.string()
        systemMessage: messageSchema
    }),
    z.object({
        status: z.literal('ConfigurationError'),
        systemMessage: z.string()
        systemMessage: messageSchema
    }),
    z.object({
        status: z.enum(["Accepted",
@@ -35,7 +37,7 @@ const schema = z.discriminatedUnion('status', [
            "WrongAnswer",
            "JudgementFailed"
        ]),
        compile: z.object({ success: z.literal(true), message: z.string() }),
        compile: z.object({ success: z.literal(true), message: messageSchema }),
        testcaseResult: z.record(z.string(), z.object({
            testcaseInfo: z.object({
                timeLimit: z.number(),
@@ -45,13 +47,13 @@ const schema = z.discriminatedUnion('status', [
            }),
            status: z.string(),
            score: z.number(),
            input: z.object({ data: z.string(), omittedLength: z.number() }).or(z.string()),
            output: z.object({ data: z.string(), omittedLength: z.number() }).or(z.string()),
            userOutput: z.object({ data: z.string(), omittedLength: z.number() }).or(z.string()),
            userError: z.object({ data: z.string(), omittedLength: z.number() }).or(z.string()),
            input: messageSchema,
            output: messageSchema,
            userOutput: messageSchema,
            userError: messageSchema,
            time: z.number(),
            memory: z.number(),
            checkerMessage: z.object({ data: z.string(), omittedLength: z.number() }).or(z.string()),
            checkerMessage: messageSchema,
        })),
        subtasks: z.array(
            z.object({