accounting.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { Request, Response, Router } from "express";
  2. import DBConnectorFactory from "../src/DbConnector/DBConnectorFactory";
  3. import { Clause, QueryBuilder } from "../src/DbConnector/Query";
  4. import UserModel from "../src/models/User";
  5. const router = Router();
  6. router.get('/', (req: Request, res: Response) => {
  7. return res.end("accounting dashboard"); // FIXME
  8. });
  9. function RenderUserAccounting(user: UserModel, req: Request, res: Response) {
  10. return res.end(`accounting (user ${user.GetUsername()})`); // FIXME
  11. }
  12. router.get('/self', (req: Request, res: Response) => {
  13. RenderUserAccounting(req.mSession.GetUser(), req, res);
  14. });
  15. router.get('/user/:userId', async (req: Request, res: Response, next: any) => {
  16. const id = parseInt(req.params["userId"] || "", 10);
  17. if (isNaN(id)) {
  18. let err: any = new Error("Invalid Request");
  19. err.status = 400;
  20. next(err);
  21. return;
  22. }
  23. const user: UserModel | null = await (await DBConnectorFactory.GetConnector()).FetchOne(new QueryBuilder().Where(Clause.Equal(UserModel.USERID, id)), UserModel);
  24. if (user) {
  25. RenderUserAccounting(user, req, res);
  26. } else {
  27. let err: any = new Error("No such entity " +id);
  28. err.status = 404;
  29. next(err);
  30. return;
  31. }
  32. });
  33. export default router;