This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Zaimki/server/routes/admin.js

37 lines
987 B
JavaScript
Raw Normal View History

2020-10-31 13:33:59 -07:00
import { Router } from 'express';
import SQL from 'sql-template-strings';
2020-11-02 12:12:15 -08:00
import avatar from '../avatar';
2020-10-31 13:33:59 -07:00
const router = Router();
router.get('/admin/users', async (req, res) => {
if (!req.admin) {
return res.status(401).json({error: 'Unauthorised'});
}
const users = await req.db.all(SQL`
2020-11-02 12:12:15 -08:00
SELECT u.id, u.username, u.email, u.roles, u.avatarSource, p.locale
2020-10-31 13:33:59 -07:00
FROM users u
LEFT JOIN profiles p ON p.userId = u.id
ORDER BY u.id DESC
`);
const groupedUsers = {};
for (let user of users) {
if (groupedUsers[user.id] === undefined) {
groupedUsers[user.id] = {
...user,
locale: undefined,
profiles: user.locale ? [user.locale] : [],
2020-11-02 12:12:15 -08:00
avatar: await avatar(req.db, user),
2020-10-31 13:33:59 -07:00
}
} else {
groupedUsers[user.id].profiles.push(user.locale);
}
}
return res.json(groupedUsers);
});
export default router;