diff --git a/src/api.ts b/src/api.ts index 05736c4..2e4e8ce 100644 --- a/src/api.ts +++ b/src/api.ts @@ -1,6 +1,6 @@ import axios from "axios" import { router } from "./router" -import type { TutorialIn, ChallengeIn } from "./utils/type" +import type { TutorialIn, ChallengeIn, FlagType } from "./utils/type" import { BASE_URL, STORAGE_KEY } from "./utils/const" const http = axios.create({ @@ -167,6 +167,11 @@ export const Submission = { const res = await http.put(`/submission/${id}/score`, { score }) return res.data }, + + async updateFlag(id: string, flag: FlagType) { + const res = await http.put(`/submission/${id}/flag`, { flag }) + return res.data + }, } export const Prompt = { diff --git a/src/utils/type.ts b/src/utils/type.ts index beae1bc..b3f15a6 100644 --- a/src/utils/type.ts +++ b/src/utils/type.ts @@ -14,6 +14,8 @@ export function getRole(role: Role) { }[role] } +export type FlagType = "red" | "blue" | "green" | "yellow" | null + export interface TutorialSlim { display: number title: string @@ -64,6 +66,7 @@ export interface SubmissionOut { score: number my_score: number conversation_id?: string + flag?: FlagType created: Date modified: Date } @@ -78,6 +81,7 @@ export interface SubmissionAll { task_title: string score: number my_score: number + flag?: FlagType html: "" css: "" js: ""