@opengis/admin
Version:
This project Softpro Admin
52 lines (41 loc) • 1.49 kB
JavaScript
import path from 'node:path';
import { dataUpdate, pgClients, uploadMultiPart } from '@opengis/fastify-table/utils.js';
export default async function widgetSet(req, reply) {
const { pg = pgClients.client, headers = {}, user = {}, params = {} } = req;
if (!params?.id) {
return reply.status(400).send('not enough params: id');
}
if (!pg.pk?.['crm.files']) {
return reply.status(404).send('table not found');
}
if (headers['content-type']?.split?.(';')?.shift?.() !== 'multipart/form-data') {
return reply.status(400).send('invalid payload content type');
}
const file = await uploadMultiPart(req);
const extName = path.extname(file.filepath).slice(1).toLowerCase();
const data = {
uploaded_name: file?.originalFilename?.toLocaleLowerCase()?.replace(/'/g, '\'\''),
file_path: file?.relativeFilepath?.replace(/\\/g, '/'),
ext: extName,
size: file?.size,
file_status: 1,
uid: user?.uid || 1,
};
const result = await dataUpdate({
pg,
table: 'crm.files',
id: params.id,
data,
uid: user?.uid,
});
if (!result?.file_id) {
return reply.status(404).send('file not found');
}
return reply.status(200).send({
rowCount: 1,
data: result,
command: 'UPLOAD',
id: result?.file_id,
entity_id: result?.entity_id,
});
}