UNPKG

@opengis/fastify-table

Version:

core-plugins

48 lines (40 loc) 1.54 kB
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, }, }, }; }