add asset
Some checks failed
Deploy / deploy (build, debian, 22) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822) (push) Has been cancelled

This commit is contained in:
2026-04-13 04:36:39 -06:00
parent 36fcf8427f
commit 1d01415771
11 changed files with 339 additions and 27 deletions

View File

@@ -7,6 +7,7 @@ import type {
SubmissionOut,
PromptMessage,
TaskStatsOut,
TaskAsset,
} from "./utils/type"
import { BASE_URL, STORAGE_KEY } from "./utils/const"
@@ -271,3 +272,46 @@ export const Helper = {
return !!res.data.url ? res.data.url : ""
},
}
export const TaskAssets = {
async listChallenge(display: number): Promise<TaskAsset[]> {
return (await http.get<TaskAsset[]>(`/assets/challenge/${display}`)).data
},
async uploadChallenge(
display: number,
name: string,
file: File,
): Promise<TaskAsset> {
const form = new window.FormData()
form.append("name", name)
form.append("file", file)
return (
await http.post<TaskAsset>(`/assets/challenge/${display}`, form, {
headers: { "content-type": "multipart/form-data" },
})
).data
},
async deleteChallenge(display: number, name: string) {
return (await http.delete(`/assets/challenge/${display}/${name}`)).data
},
async listTutorial(display: number): Promise<TaskAsset[]> {
return (await http.get<TaskAsset[]>(`/assets/tutorial/${display}`)).data
},
async uploadTutorial(
display: number,
name: string,
file: File,
): Promise<TaskAsset> {
const form = new window.FormData()
form.append("name", name)
form.append("file", file)
return (
await http.post<TaskAsset>(`/assets/tutorial/${display}`, form, {
headers: { "content-type": "multipart/form-data" },
})
).data
},
async deleteTutorial(display: number, name: string) {
return (await http.delete(`/assets/tutorial/${display}/${name}`)).data
},
}