@ima-worldhealth/sunfish
Version:
A webapp for configuring DHIS2 email reports
32 lines (23 loc) • 945 B
JavaScript
const api = require('@ima-worldhealth/dhis2-api');
const router = require('express').Router();
const db = require('../lib/db');
async function refreshDashboardList() {
const { data } = await api.dashboards.list();
// clear out the old dashboards
db.prepare('DELETE FROM dashboards WHERE id NOT IN (SELECT dashboard_id FROM schedules_dashboards);').run();
const insert = db.prepare('INSERT OR IGNORE INTO dashboards (id, display_name) VALUES (?, ?)');
const bulk = db.transaction((boards) => {
boards.forEach((board) => {
insert.run(board.id, board.displayName);
});
});
// perform a bulk insert of all dashbaords
bulk(data.dashboards);
return data.dashboards;
}
router.get('/', (req, res) => {
const data = db.prepare('SELECT * FROM dashboards;').all();
res.render('data-list', { data, header : 'Dashboards' });
});
module.exports = router;
module.exports.refreshDashboardList = refreshDashboardList;