40 lines
1.0 KiB
TypeScript
40 lines
1.0 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({
|
|
id: z.number(),
|
|
name: z.string(),
|
|
content: z.string(),
|
|
assets: z.array(z.number()),
|
|
}),
|
|
async (req, res) => {
|
|
const { id, name, content, assets } = req.body;
|
|
await u.db("o_script").where({ id }).update({
|
|
name,
|
|
content,
|
|
});
|
|
if (assets.length) {
|
|
const assetsData = await u.db("o_assets").whereIn("id", assets).select();
|
|
await u.db("o_scriptAssets").where({ scriptId: id }).delete();
|
|
if (assetsData.length) {
|
|
const insertData = assetsData.map((item) => {
|
|
return {
|
|
scriptId: id,
|
|
assetId: item.id,
|
|
};
|
|
});
|
|
await u.db("o_scriptAssets").insert(insertData);
|
|
}
|
|
}
|
|
|
|
res.status(200).send(success({ message: "编辑剧本成功" }));
|
|
},
|
|
);
|