@opengis/bi
Version:
BI data visualization module
48 lines (37 loc) • 1.23 kB
JavaScript
import {
config, getToken, dataInsert, pgClients,
} from '@opengis/fastify-table/utils.js';
import datasetForms from '../utils/datasetForms.js';
export default async function datasetDataInsert({
pg = pgClients.client, params = {}, body = {}, user = {},
}) {
if (!user?.uid) {
return { message: 'access restricted', status: 403 };
}
const tokenData = await getToken({
uid: user?.uid,
token: params.id,
mode: 'a',
json: 1,
});
if (!tokenData && !config.local && !config.debug) {
return { message: 'token not allow', status: 403 };
}
const dataset = await pg.query('select dataset_id as id, table_name as table from bi.dataset where dataset_id=$1', [tokenData?.dataset || params.id])
.then(el => el.rows[0] || {});
const { form, table: add } = tokenData
|| { form: `${dataset.id}.form`, table: dataset.table };
if (!form || !dataset.id || !datasetForms[dataset.id]) {
return { message: 'dataset not found', status: 404 };
}
const res = await dataInsert({
pg,
table: add,
data: body,
uid: user?.uid,
});
if (!res) {
return { message: 'nothing added' };
}
return { rows: res.rows };
}