25 lines
905 B
TypeScript
25 lines
905 B
TypeScript
import type Database from "bun:sqlite";
|
|
|
|
import type { RuntimeMode } from "../../../shared/api";
|
|
import type { Logger } from "../../logger";
|
|
|
|
import { deleteModel } from "../../db/models";
|
|
import { createApiError, jsonResponse } from "../../helpers";
|
|
import { validateIdParam } from "../../middleware";
|
|
|
|
export function handleDeleteModel(req: Request, db: Database, mode: RuntimeMode, logger: Logger): Response {
|
|
const url = new URL(req.url);
|
|
const idStr = url.pathname.split("/")[3];
|
|
|
|
const validated = validateIdParam(idStr ?? "", mode);
|
|
if (validated instanceof Response) return validated;
|
|
|
|
const result = deleteModel(db, validated.id, logger);
|
|
if ("error" in result) {
|
|
return jsonResponse(createApiError(result.error, result.status), { mode, status: result.status });
|
|
}
|
|
|
|
logger.info({ modelId: validated.id }, "模型删除成功");
|
|
return new Response(null, { status: 204 });
|
|
}
|