Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 1x 1x 55x 55x 1x 1x 30x 30x 30x 30x 30x 1x 1x 13x 13x 13x 13x 13x 1x 1x 1x 1x 1x 1x 1x 1x 1x 5x 5x 5x 5x 5x 1x 1x 6x 6x 6x 6x 6x 1x 1x | import * as express from "express"
import { Router } from "express"
import { Request, Response } from "./authentication"
// Little wrapper to automatically send returned objects as JSON, makes
// the API code a bit cleaner
export class FunctionalRouter {
router: Router
constructor() {
this.router = Router()
this.router.use(express.urlencoded({ extended: true }))
// Parse incoming requests with JSON payloads http://expressjs.com/en/api.html
this.router.use(express.json({ limit: "50mb" }))
}
wrap(callback: (req: Request, res: Response) => Promise<any>) {
return async (req: Request, res: Response) => {
res.send(await callback(req, res))
}
}
get(
targetPath: string,
callback: (req: Request, res: Response) => Promise<any>
) {
this.router.get(targetPath, this.wrap(callback))
}
post(
targetPath: string,
callback: (req: Request, res: Response) => Promise<any>
) {
this.router.post(targetPath, this.wrap(callback))
}
patch(
targetPath: string,
callback: (req: Request, res: Response) => Promise<any>
) {
this.router.patch(targetPath, this.wrap(callback))
}
put(
targetPath: string,
callback: (req: Request, res: Response) => Promise<any>
) {
this.router.put(targetPath, this.wrap(callback))
}
delete(
targetPath: string,
callback: (req: Request, res: Response) => Promise<any>
) {
this.router.delete(targetPath, this.wrap(callback))
}
}
|