按名字扫了一遍 api 层导出和 utils 常量,四处全仓零引用:
**`getContestProblem`**(admin/api.ts)—— 和紧挨在它上面的 `getProblem` 逐字
相同,同一个 URL、同一个类型。旧后端 admin 侧比赛题和公开题是两个端点,合并
之后这个壳留下来了。
**`createMessage`**(oj/api.ts)—— 两代前端都只有定义没有调用。参数名还是旧
后端那套(recipient / submission),函数体里再映射成契约的
recipientId / submissionId,等于给一个不存在的调用方写了个兼容层。
d3b05b8 删掉了它的类型 CreateMessage,函数漏了。
后端 `POST /messages` 是完整实现的,只是后台那个页面
(admin/communication/messages.vue)两代都是一句「未完待续」的占位。
在端点上加了注释说明这件事,免得下次扫「无人调用的端点」时被当成可删。
**`CONTEST_TYPE`**(constants.ts)—— 和上面 30 行处的 `ContestType` 枚举
一模一样。枚举那份有 8 处在用,这个对象零引用。
**`LANGUAGE_ID`**(constants.ts)—— Judge0 的语言 id。真正在用的那份在
utils/judge.ts 的 JUDGE0_LANGUAGE_ID,而且**只有那份是对的**:死掉的这份把
Golang / JavaScript / Python2 全写成了 0,谁要是拿它去调 Judge0,这三种语言
的在线试运行会静默发出 `language_id: 0`。
顺带确认过没有 `constants["LANGUAGE_ID"]` 这类动态取值。
验证:vue-tsc 0 error、vite build 通过、tsc(apps/api) 0 error、
check:routes 168 条无遮蔽。四处都是零文本引用的纯删除。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -109,6 +109,12 @@ contentRoutes.get("/messages", requireAuth, async (c) => {
|
|||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发站内信。**目前没有任何前端在调用它** —— 后台那个页面
|
||||||
|
* (apps/web/src/admin/communication/messages.vue)两代前端都只是一句
|
||||||
|
* 「未完待续」的占位,ojnext 里定义过一个 createMessage 但同样零调用,
|
||||||
|
* 已在前端删掉。端点本身是完整实现的,要接 UI 从这里开始。
|
||||||
|
*/
|
||||||
contentRoutes.post("/messages", requireSuperAdmin, async (c) => {
|
contentRoutes.post("/messages", requireSuperAdmin, async (c) => {
|
||||||
const user = c.get("user")!
|
const user = c.get("user")!
|
||||||
const parsed = createMessageRequestSchema.safeParse(await c.req.json().catch(() => null))
|
const parsed = createMessageRequestSchema.safeParse(await c.req.json().catch(() => null))
|
||||||
|
|||||||
@@ -110,10 +110,6 @@ export function getProblem(id: string | number) {
|
|||||||
return api.get<AdminProblem>(`admin/problems/${id}`)
|
return api.get<AdminProblem>(`admin/problems/${id}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getContestProblem(id: number) {
|
|
||||||
return api.get<AdminProblem>(`admin/problems/${id}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 标签管理
|
// 标签管理
|
||||||
export function getTagAdminList(keyword = "") {
|
export function getTagAdminList(keyword = "") {
|
||||||
return api.get<AdminTag[]>("admin/problem-tags", { params: { keyword } })
|
return api.get<AdminTag[]>("admin/problem-tags", { params: { keyword } })
|
||||||
|
|||||||
@@ -270,18 +270,6 @@ export function getAnnouncement(id: number) {
|
|||||||
return api.get<Announcement>(`announcements/${id}`)
|
return api.get<Announcement>(`announcements/${id}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createMessage(data: {
|
|
||||||
recipient: number
|
|
||||||
message: string
|
|
||||||
submission: string
|
|
||||||
}) {
|
|
||||||
return api.post("messages", {
|
|
||||||
recipientId: data.recipient,
|
|
||||||
message: data.message,
|
|
||||||
submissionId: data.submission,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getMessageList(offset = 0, limit = 10) {
|
export function getMessageList(offset = 0, limit = 10) {
|
||||||
// language 的收窄同 getSubmissions,见那里的说明
|
// language 的收窄同 getSubmissions,见那里的说明
|
||||||
return api.get<{ results: Message[]; total: number }>("messages", {
|
return api.get<{ results: Message[]; total: number }>("messages", {
|
||||||
|
|||||||
@@ -132,11 +132,6 @@ export const CONTEST_STATUS: {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export const CONTEST_TYPE = {
|
|
||||||
PUBLIC: "Public",
|
|
||||||
PRIVATE: "Password Protected",
|
|
||||||
}
|
|
||||||
|
|
||||||
export const USER_TYPE = {
|
export const USER_TYPE = {
|
||||||
REGULAR_USER: "Regular User",
|
REGULAR_USER: "Regular User",
|
||||||
STUDENT_ADMIN: "Student Admin",
|
STUDENT_ADMIN: "Student Admin",
|
||||||
@@ -185,18 +180,6 @@ export const SOURCES = {
|
|||||||
SQL: "",
|
SQL: "",
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
export const LANGUAGE_ID = {
|
|
||||||
C: 50,
|
|
||||||
"C++": 54,
|
|
||||||
Java: 62,
|
|
||||||
Python3: 71,
|
|
||||||
Python2: 0,
|
|
||||||
JavaScript: 0,
|
|
||||||
Golang: 0,
|
|
||||||
Flowchart: 0,
|
|
||||||
SQL: 0,
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export const LANGUAGE_FORMAT_VALUE = {
|
export const LANGUAGE_FORMAT_VALUE = {
|
||||||
C: "c",
|
C: "c",
|
||||||
"C++": "cpp",
|
"C++": "cpp",
|
||||||
|
|||||||
Reference in New Issue
Block a user