Add files via upload
This commit is contained in:
58
src/routes/admin.js
Normal file
58
src/routes/admin.js
Normal file
@@ -0,0 +1,58 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { getRecentLogs } = require('../db/audit');
|
||||
const { getAllUsers } = require('../services/googleAdmin');
|
||||
|
||||
router.get('/logs', (req, res) => {
|
||||
const logs = getRecentLogs(parseInt(req.query.limit) || 200);
|
||||
res.json(logs);
|
||||
});
|
||||
|
||||
router.get('/users', async (req, res) => {
|
||||
try {
|
||||
const users = await getAllUsers();
|
||||
res.json(users);
|
||||
} catch (err) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/template', (req, res) => {
|
||||
const templatePath = path.join(__dirname, '../../templates/default.hbs');
|
||||
const content = fs.readFileSync(templatePath, 'utf8');
|
||||
res.json({ content });
|
||||
});
|
||||
|
||||
router.post('/template', (req, res) => {
|
||||
const { content } = req.body;
|
||||
if (!content) return res.status(400).json({ error: 'content required' });
|
||||
const templatePath = path.join(__dirname, '../../templates/default.hbs');
|
||||
fs.writeFileSync(templatePath + '.bak', fs.readFileSync(templatePath));
|
||||
fs.writeFileSync(templatePath, content);
|
||||
res.json({ ok: true });
|
||||
});
|
||||
|
||||
router.post('/preview', (req, res) => {
|
||||
const { templateHtml, userData } = req.body;
|
||||
try {
|
||||
const Handlebars = require('handlebars');
|
||||
Handlebars.registerHelper('if_val', function(val, options) {
|
||||
return val && val.trim() !== '' ? options.fn(this) : options.inverse(this);
|
||||
});
|
||||
const template = Handlebars.compile(templateHtml);
|
||||
const rendered = template(userData || {
|
||||
fullName: 'Jason Stedwell',
|
||||
title: 'Director of Technical Services',
|
||||
email: 'jstedwell@messagepointmedia.com',
|
||||
phone: '334-707-2550',
|
||||
cellPhone: ''
|
||||
});
|
||||
res.json({ html: rendered });
|
||||
} catch (err) {
|
||||
res.status(400).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user