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

Diff of /trunk/src/api/Router.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 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1    /**
2    * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20  import { readdir } from "fs/promises";  import { readdir } from "fs/promises";
21  import path from "path";  import path from "path";
22  import DiscordClient from "../client/Client";  import DiscordClient from "../client/Client";
# Line 38  export default class Router extends Serv Line 57  export default class Router extends Serv
57          let controller = DiscordClient.client.server.router.controllerObjects.find(c => c instanceof callback[0]);          let controller = DiscordClient.client.server.router.controllerObjects.find(c => c instanceof callback[0]);
58    
59          if (!controller) {          if (!controller) {
60              controller = new callback[0]();              controller = new callback[0](DiscordClient.client);
61              DiscordClient.client.server.router.controllerObjects.push(controller);              DiscordClient.client.server.router.controllerObjects.push(controller);
62              console.log("Pushed a controller");              console.log("Pushed a controller");
63          }          }
# Line 67  export default class Router extends Serv Line 86  export default class Router extends Serv
86      static delete(path: string, callback: [typeof Controller, string]) {      static delete(path: string, callback: [typeof Controller, string]) {
87          return Router.insert("DELETE", path, callback);          return Router.insert("DELETE", path, callback);
88      }      }
89    
90        static resource(path: string, controller: typeof Controller, { get = true, post = true, put = true, patch = true, del = true }: { get?: boolean, post?: boolean, put?: boolean, patch?: boolean, del?: boolean } = {}) {
91            return {
92                get: get ? Router.get(path, [controller, 'index']) : undefined,
93                post: post ? Router.post(path, [controller, 'create']) : undefined,
94                put: put ? Router.put(path, [controller, 'update']) : undefined,
95                patch: patch ? Router.patch(path, [controller, 'update']) : undefined,
96                delete: del ? Router.delete(path, [controller, 'delete']) : undefined,
97            };
98        }
99  }  }

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26