From a831ebb5dcc3e89cc6fdc06a417c01422873f15c Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Mon, 3 May 2021 16:13:19 -0500 Subject: [PATCH] Add PUT and DELETE requests to webserver module --- .../webserver/src/RouteRegisterFactory.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/webserver/src/RouteRegisterFactory.ts b/packages/webserver/src/RouteRegisterFactory.ts index db32d9e..581cdc8 100644 --- a/packages/webserver/src/RouteRegisterFactory.ts +++ b/packages/webserver/src/RouteRegisterFactory.ts @@ -91,6 +91,30 @@ export class RouteRegisterFactory = MiddlewareMe this.fastify.post(`${this.pathPrefix}${path}`, handleMiddleware(<(T|M)[]>middleware, handler)); } + /** + * Register a PUT request + */ + public put>(path: string, handler: HandlerMethodWithMiddleware): void; + public put>(path: string, middleware: T[], handler: HandlerMethodWithMiddleware<(T|M)[]>): void; + public put>(path: string, middleware: HandlerMethodWithMiddleware<(T|M)[]>|T[], handler?: HandlerMethodWithMiddleware<(T|M)[]>) { + type Handler = HandlerMethodWithMiddleware<(T|M)[]>; + handler = (handler ?? middleware); + middleware = (middleware instanceof Array) ? this.middleware.concat(middleware) : this.middleware; + this.fastify.put(`${this.pathPrefix}${path}`, handleMiddleware(<(T|M)[]>middleware, handler)); + } + + /** + * Register a DELETE request + */ + public delete>(path: string, handler: HandlerMethodWithMiddleware): void; + public delete>(path: string, middleware: T[], handler: HandlerMethodWithMiddleware<(T|M)[]>): void; + public delete>(path: string, middleware: HandlerMethodWithMiddleware<(T|M)[]>|T[], handler?: HandlerMethodWithMiddleware<(T|M)[]>) { + type Handler = HandlerMethodWithMiddleware<(T|M)[]>; + handler = (handler ?? middleware); + middleware = (middleware instanceof Array) ? this.middleware.concat(middleware) : this.middleware; + this.fastify.delete(`${this.pathPrefix}${path}`, handleMiddleware(<(T|M)[]>middleware, handler)); + } + /** * Register a proxy route */