@opengis/fastify-table
Version:
core-plugins
48 lines (40 loc) • 1.54 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 } = req;
const { uid = 1 } = req.session?.passport?.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 {
message: {
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,
},
},
};
}