@opengis/fastify-table
Version:
core-plugins
44 lines (43 loc) • 1.62 kB
JavaScript
import path from "node:path";
import { dataInsert, pgClients } from "../../../../utils.js";
import uploadMultiPart from "../../../plugins/file/uploadMultiPart.js";
export default async function uploadImage(req) {
const { pg = pgClients.client, user } = req;
const { uid = 1 } = user || {};
const file = await uploadMultiPart(req);
const objectId = req.params["*"]; // ID from token?
const extName = path
.extname(file.filepath || "")
.slice(1)
.toLowerCase();
const resultInsert = await dataInsert({
pg,
table: "crm.files",
data: {
uploaded_name: file?.originalFilename?.toLocaleLowerCase(),
file_path: file?.relativeFilepath?.replace(/\\/g, "/"),
ext: extName,
size: file?.size,
file_status: 1,
entity_id: objectId,
},
uid,
}).then((el) => el?.rows?.[0] || {});
const { dir: relativeDirpath, base: fileName } = resultInsert?.file_path
? path.parse(resultInsert.file_path)
: {};
return {
res: "ok",
name: file?.originalFilename,
result: {
file_id: resultInsert.file_id,
format: resultInsert.ext || extName,
size: resultInsert.size || file?.size,
entity_id: resultInsert.entity_id,
file_path: resultInsert.file_path || file?.relativeFilepath?.replace(/\\/g, "/"),
file_name: file?.originalFilename?.toLocaleLowerCase?.(),
dir: relativeDirpath?.replace(/\\/g, "/"),
native_file_name: fileName,
},
};
}