import { Request, Response, Router } from "express"; import DBConnectorFactory from "../src/DbConnector/DBConnectorFactory"; import { Clause, QueryBuilder } from "../src/DbConnector/Query"; import UserModel from "../src/models/User"; const router = Router(); router.get('/', (req: Request, res: Response) => { return res.end("accounting dashboard"); // FIXME }); function RenderUserAccounting(user: UserModel, req: Request, res: Response) { return res.end(`accounting (user ${user.GetUsername()})`); // FIXME } router.get('/self', (req: Request, res: Response) => { RenderUserAccounting(req.mSession.GetUser(), req, res); }); router.get('/user/:userId', async (req: Request, res: Response, next: any) => { const id = parseInt(req.params["userId"] || "", 10); if (isNaN(id)) { let err: any = new Error("Invalid Request"); err.status = 400; next(err); return; } const user: UserModel | null = await (await DBConnectorFactory.GetConnector()).FetchOne(new QueryBuilder().Where(Clause.Equal(UserModel.USERID, id)), UserModel); if (user) { RenderUserAccounting(user, req, res); } else { let err: any = new Error("No such entity " +id); err.status = 404; next(err); return; } }); export default router;