Make mechanism of creating HTTP response an implementation detail

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen committed 2022-03-11 09:29:26 +02:00
1 parent 40bf8e757b
commit db5873319f
2 files changed
+5 -9

No files matched your search

-1
View File
@@ -82,7 +82,6 @@ describe("router", () => {
payload: "some-payload",
query: expect.any(URLSearchParams),
raw: { req: requestStub },
response: responseStub,
});
});
+5 -8
View File
@@ -15,7 +15,6 @@ import "../common/vars";
export interface RouterRequestOpts {
req: http.IncomingMessage;
res: http.ServerResponse;
cluster: Cluster;
params: RouteParams;
url: URL;
@@ -36,7 +35,6 @@ export interface LensApiRequest<P = any> {
payload: P;
params: RouteParams;
cluster: Cluster;
response: http.ServerResponse;
query: URLSearchParams;
raw: {
req: http.IncomingMessage;
@@ -66,9 +64,9 @@ export class Router {
const routeFound = !matchingRoute.isBoom;
if (routeFound) {
const request = await this.getRequest({ req, res, cluster, url, params: matchingRoute.params });
const request = await this.getRequest({ req, cluster, url, params: matchingRoute.params });
await matchingRoute.route(request);
await matchingRoute.route(request, res);
return true;
}
@@ -77,7 +75,7 @@ export class Router {
}
protected async getRequest(opts: RouterRequestOpts): Promise<LensApiRequest> {
const { req, res, url, cluster, params } = opts;
const { req, url, cluster, params } = opts;
const { payload } = await this.dependencies.parseRequest(req, null, {
parse: true,
@@ -90,7 +88,6 @@ export class Router {
raw: {
req, res,
},
response: res,
query: url.searchParams,
payload,
params,
@@ -121,10 +118,10 @@ export interface Route<TResponse> {
handler: RouteHandler<TResponse>;
}
const handleRoute = (route: Route<any>) => async (request: LensApiRequest) => {
const handleRoute = (route: Route<any>) => async (request: LensApiRequest, response: http.ServerResponse) => {
let result: LensApiResult<any> | void;
const writeServerResponse = writeServerResponseFor(request.response);
const writeServerResponse = writeServerResponseFor(response);
try {
result = await route.handler(request);