|
12345678910111213141516171819202122232425262728293031323334353637 |
- // Copyright (c) 2020 Jan Kaßel
- // Copyright (c) 2022 Gerben
- //
- // SPDX-License-Identifier: MIT
-
- import type { Request, Response } from 'express';
- import db from '../db.js';
- import { renderUser } from '../render/renderUser.js';
- import { getPrefixedEntries } from '../util.js';
- import users from '../../config/users.json';
- import { CollectionInfo } from './collection.js';
-
- export async function getUser(req: Request, res: Response) {
- const name = req.params.user;
- if (!(name in users)) {
- res.status(404).send('Not found');
- return;
- }
- try {
- const collections: CollectionInfo[] = (await getPrefixedEntries(db, `${name}/`, true)).map(
- ([_, value]) => value,
- );
-
- const user = {
- name,
- collections,
- };
-
- res.format({
- html: () => renderUser(req, res, user),
- default: () => res.send(user),
- });
- } catch (err: any) {
- console.error(req.method, req.path, err);
- res.status(500).send('Internal Server Error');
- }
- }
|