UNPKG

@opengis/bi

Version:

BI data visualization module

53 lines (43 loc) 1.61 kB
import { dataDelete, pgClients } from '@opengis/fastify-table/utils.js'; /** * Видалення набору даних * * @method DELETE * @summary Видалення набору даних * @priority 4 * @alias deleteDataset * @type api * @tag bi * @param {Object} query.id Dataset ID * @errors 400,500 * @returns {Number} status Номер помилки * @returns {String} error Опис помилки * @returns {Object} rows Масив з колонками таблиці */ export default async function deleteDataset({ pg = pgClients.client, query = {}, user = {}, }) { if (!user?.uid) { return { message: 'access restricted', status: 403 }; } if (!query?.id) { return { message: 'not enough params: id', status: 404 }; } const dataset = await pg.query('select dataset_id as id, table_name as table from bi.dataset where dataset_id=$1', [query.id]) .then(el => el.rows[0] || {}); if (!dataset.id) { return { message: 'dataset not found', status: 404 }; } const table = dataset.table && pg.pk[dataset.table] ? dataset.table : dataset.table?.replace(/"/g, ''); const dropTable = table && pg.pk?.[table] && table.startsWith('data_user.'); if (dropTable) { await pg.query(`drop table if exists ${table}`); } await dataDelete({ pg, table: 'bi.dataset', id: dataset.id, uid: user.uid, }); return { message: { id: dataset?.id, table: dropTable ? dataset.table : undefined }, status: 200 }; }