51 lines
1.5 KiB
TypeScript

import express from "express";
import u from "@/utils";
import { z } from "zod";
import { success } from "@/lib/responseFormat";
import { validateFields } from "@/middleware/middleware";
const router = express.Router();
// 新增原文数据
export default router.post(
"/",
validateFields({
projectId: z.number(),
data: z.array(
z.object({
index: z.number(),
reel: z.string(),
chapter: z.string(),
chapterData: z.string(),
}),
),
}),
async (req, res) => {
const { projectId, data } = req.body;
const totalNovelId = [];
for (const item of data) {
const [id] = await u.db("o_novel").insert({
projectId,
chapterIndex: item.index,
reel: item.reel,
chapter: item.chapter,
chapterData: item.chapterData,
createTime: Date.now(),
eventState: 0,
});
totalNovelId.push(id);
}
const chapterAllList = await u.db("o_novel").where("projectId", projectId).whereIn("id", totalNovelId);
const novelClass = new u.cleanNovel();
novelClass.emitter.on("item", async (item) => {
console.log("%c Line:40 🍇 item", "background:#6ec1c2", item);
await u
.db("o_novel")
.where("id", item.id)
.update({ event: item.event, eventState: item.event ? 1 : -1, errorReason: item?.errReason ?? null });
});
novelClass.start(chapterAllList, projectId);
res.status(200).send(success({ message: "新增原文成功" }));
},
);