/[sudobot]/trunk/src/api/Route.ts
ViewVC logotype

Diff of /trunk/src/api/Route.ts

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 323 by rakin, Mon Jul 29 17:29:32 2024 UTC revision 324 by rakin, Mon Jul 29 17:29:32 2024 UTC
# Line 1  Line 1 
1    import { Request, Response } from "express";
2    
3  export default class Route {  export default class Route {
4      constructor(public readonly method: string, public readonly path: string, public readonly callback: [Object, string], public middlewareList: Array<Object> = []) {      constructor(public readonly method: string, public readonly path: string, public readonly callback: [Object, string], public middlewareList: Array<any> = []) {
5    
6      }      }
7    
# Line 9  export default class Route { Line 11  export default class Route {
11    
12      getCallbackFunction(...args: any[]) {      getCallbackFunction(...args: any[]) {
13          const [controller, method] = this.callback;          const [controller, method] = this.callback;
14          return () => (controller as { [key: string]: Function })[method].call(controller, ...args);          return (req: Request, res: Response) => {
15                const output = (controller as { [key: string]: Function })[method].call(controller, req, res, ...args);
16    
17                if (typeof output === 'object') {
18                    return res.json(output);
19                }
20    
21                return res.send(output);
22            };
23      }      }
24  }  }

Legend:
Removed from v.323  
changed lines
  Added in v.324

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26