80 lines
2.2 KiB
TypeScript
80 lines
2.2 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({
|
|
userId: z.number(),
|
|
imageModel: z.object().optional(),
|
|
videoModel: z.array(z.object()).optional(),
|
|
languageModel: z.object().optional(),
|
|
name: z.string().optional(),
|
|
password: z.string().optional(),
|
|
}),
|
|
async (req, res) => {
|
|
const { userId, imageModel, videoModel, languageModel, name, password } = req.body;
|
|
|
|
await u
|
|
.db("t_setting")
|
|
.where("userId", userId)
|
|
.update({
|
|
imageModel: JSON.stringify(imageModel),
|
|
languageModel: JSON.stringify(languageModel),
|
|
});
|
|
|
|
if (videoModel) {
|
|
await u.db("t_config").where("type", "video").delete();
|
|
|
|
for (const item of videoModel) {
|
|
await u.db("t_config").insert({
|
|
type: "video",
|
|
name: item.model,
|
|
model: item.model,
|
|
apiKey: item.apiKey,
|
|
baseUrl: item.baseUrl,
|
|
createTime: Date.now(),
|
|
userId,
|
|
manufacturer: item.manufacturer,
|
|
});
|
|
}
|
|
}
|
|
if (languageModel) {
|
|
await u.db("t_config").where("type", "text").delete();
|
|
await u.db("t_config").insert({
|
|
type: "text",
|
|
name: languageModel.model,
|
|
model: languageModel.model,
|
|
apiKey: languageModel.apiKey,
|
|
baseUrl: languageModel.baseUrl,
|
|
createTime: Date.now(),
|
|
userId,
|
|
manufacturer: languageModel.manufacturer,
|
|
});
|
|
}
|
|
if (imageModel) {
|
|
await u.db("t_config").where("type", "image").delete();
|
|
await u.db("t_config").insert({
|
|
type: "image",
|
|
name: imageModel.model,
|
|
model: imageModel.model,
|
|
apiKey: imageModel.apiKey,
|
|
baseUrl: imageModel.baseUrl,
|
|
createTime: Date.now(),
|
|
userId,
|
|
manufacturer: imageModel.manufacturer,
|
|
});
|
|
}
|
|
await u.db("t_user").where("id", userId).update({
|
|
name,
|
|
password,
|
|
});
|
|
|
|
res.status(200).send(success({ message: "修改全局配置成功" }));
|
|
},
|
|
);
|