51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
import Router from 'express-promise-router';
|
|
import { stringify } from '@brillout/json-serializer/stringify'; /* eslint-disable-line import/extensions */
|
|
|
|
import {
|
|
fetchUser,
|
|
fetchUserTemplates,
|
|
createTemplate,
|
|
removeTemplate,
|
|
createBan,
|
|
} from '../users.js';
|
|
|
|
async function fetchUserApi(req, res) {
|
|
const user = await fetchUser(req.params.userId, {}, req.user);
|
|
|
|
res.send(stringify(user));
|
|
}
|
|
|
|
async function fetchUserTemplatesApi(req, res) {
|
|
const templates = await fetchUserTemplates(req.user);
|
|
|
|
res.send(templates);
|
|
}
|
|
|
|
async function createTemplateApi(req, res) {
|
|
const template = await createTemplate(req.body, req.user);
|
|
|
|
res.send(stringify(template));
|
|
}
|
|
|
|
async function removeTemplateApi(req, res) {
|
|
await removeTemplate(req.params.templateId, req.user);
|
|
|
|
res.status(204).send();
|
|
}
|
|
|
|
async function createBanApi(req, res) {
|
|
await createBan(req.body, req.user);
|
|
|
|
res.status(204).send();
|
|
}
|
|
|
|
export const router = Router();
|
|
|
|
router.get('/api/users/:userId', fetchUserApi);
|
|
router.get('/api/users/:userId/templates', fetchUserTemplatesApi);
|
|
|
|
router.post('/api/templates', createTemplateApi);
|
|
router.delete('/api/templates/:templateId', removeTemplateApi);
|
|
|
|
router.post('/api/bans', createBanApi);
|