add showcase manage
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-05-01 08:24:20 -06:00
parent f025ebfa2e
commit efecef4e98
8 changed files with 805 additions and 3 deletions

View File

@@ -9,6 +9,12 @@ import type {
TaskStatsOut,
TaskAsset,
AwardSection,
AwardManageIn,
AwardManageOut,
AwardItemIn,
AwardItemUpdateIn,
AwardItemManageOut,
ShowcaseSubmissionLookupOut,
ShowcaseDetail,
PromptRound,
} from "./utils/type"
@@ -296,6 +302,73 @@ export const Showcase = {
return res.data
},
async listManageAwards(): Promise<AwardManageOut[]> {
const res = await http.get("/submission/showcase/manage/awards")
return res.data
},
async createAward(payload: AwardManageIn): Promise<AwardManageOut> {
const res = await http.post("/submission/showcase/manage/awards", payload)
return res.data
},
async updateAward(
id: number,
payload: AwardManageIn,
): Promise<AwardManageOut> {
const res = await http.put(
`/submission/showcase/manage/awards/${id}`,
payload,
)
return res.data
},
async deleteAward(id: number) {
const res = await http.delete(`/submission/showcase/manage/awards/${id}`)
return res.data
},
async listAwardItems(id: number): Promise<AwardItemManageOut[]> {
const res = await http.get(`/submission/showcase/manage/awards/${id}/items`)
return res.data
},
async findSubmissionForAward(
submissionId: string,
): Promise<ShowcaseSubmissionLookupOut> {
const res = await http.get(
`/submission/showcase/manage/submissions/${submissionId}`,
)
return res.data
},
async addAwardItem(
id: number,
payload: AwardItemIn,
): Promise<AwardItemManageOut> {
const res = await http.post(
`/submission/showcase/manage/awards/${id}/items`,
payload,
)
return res.data
},
async updateAwardItem(
itemId: number,
payload: AwardItemUpdateIn,
): Promise<AwardItemManageOut> {
const res = await http.put(
`/submission/showcase/manage/items/${itemId}`,
payload,
)
return res.data
},
async deleteAwardItem(itemId: number) {
const res = await http.delete(`/submission/showcase/manage/items/${itemId}`)
return res.data
},
async getDetail(submissionId: string): Promise<ShowcaseDetail> {
const res = await http.get(`/submission/showcase/${submissionId}/`)
return res.data