37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import express from "express";
|
|
import u from "@/utils";
|
|
import { success } from "@/lib/responseFormat";
|
|
import { z } from "zod";
|
|
import { validateFields } from "@/middleware/middleware";
|
|
const router = express.Router();
|
|
|
|
// 获取生成图片
|
|
export default router.post(
|
|
"/",
|
|
validateFields({
|
|
assetsId: z.number(),
|
|
}),
|
|
async (req, res) => {
|
|
const { assetsId } = req.body;
|
|
|
|
const assets = await u.db("o_assets").where("id", assetsId).select("id", "imageId", "type").first();
|
|
|
|
const rawTempAssets = await u.db("o_image").where("assetsId", assetsId).select("id", "filePath", "assetsId", "type", "state");
|
|
|
|
const tempAssets = await Promise.all(
|
|
rawTempAssets.map(async (item) => ({
|
|
...item,
|
|
filePath: item.filePath ? await u.oss.getFileUrl(item.filePath) : "",
|
|
selected: assets?.imageId != null && Number(item.id) === Number(assets.imageId),
|
|
})),
|
|
);
|
|
|
|
const data = {
|
|
id: assets!.id,
|
|
imageId: assets!.imageId ?? null,
|
|
tempAssets,
|
|
};
|
|
res.status(200).send(success(data));
|
|
},
|
|
);
|