UNPKG

@opengis/bi

Version:

BI data visualization module

40 lines (30 loc) 1.13 kB
import path from 'node:path'; import { existsSync, readdirSync } from 'node:fs'; import { pgClients, dataDelete } from '@opengis/fastify-table/utils.js'; const cwd = process.cwd(); const dashboardDir = path.join(cwd, 'server/templates/dashboard'); export default async function dashboardDelete({ pg = pgClients.client, params = {}, user }, reply) { if (!params?.id) { return reply.status(400).send('not enough params: id'); } const dirContent = existsSync(dashboardDir) ? readdirSync(dashboardDir) : []; if (dirContent.includes(params.id)) { return reply.status(403).send(`access restricted: ${params.id}`); } const { rowCount = 0 } = pg.pk?.['bi.dashboard'] ? await pg.query('select * from bi.dashboard where $1 in (dashboard_id,name)', [params.id]) : {}; if (rowCount === 0) { return reply.status(404).send(`not found ${params.id}`); } await pg.query(`delete from bi.widget where $1 in (dashboard_id)`, [params.id]); await dataDelete({ pg, table: 'bi.dashboard', id: params.id, uid: user?.uid, }); return reply.status(200).send('successfully deleted'); }