diff --git a/src/main/router.ts b/src/main/router.ts index 889d349397..1db1a2a302 100644 --- a/src/main/router.ts +++ b/src/main/router.ts @@ -11,7 +11,7 @@ import path from "path"; import { readFile } from "fs-extra"; import type { Cluster } from "../common/cluster/cluster"; import { apiPrefix, appName, publicPath } from "../common/vars"; -import { KubeconfigRoute, MetricsRoute, PortForwardRoute, VersionRoute } from "./routes"; +import { KubeconfigRoute, MetricsRoute, VersionRoute } from "./routes"; import logger from "./logger"; export interface RouterRequestOpts { @@ -179,7 +179,6 @@ export class Router { // Port-forward API (the container port and local forwarding port are obtained from the query parameters) this.router.add({ method: "post", path: `${apiPrefix}/pods/port-forward/{namespace}/{resourceType}/{resourceName}` }, this.dependencies.routePortForward); - this.router.add({ method: "get", path: `${apiPrefix}/pods/port-forward/{namespace}/{resourceType}/{resourceName}` }, PortForwardRoute.routeCurrentPortForward); } } diff --git a/src/main/routes/index.ts b/src/main/routes/index.ts index c603c91dbd..c08e2719ac 100644 --- a/src/main/routes/index.ts +++ b/src/main/routes/index.ts @@ -5,5 +5,4 @@ export * from "./kubeconfig-route"; export * from "./metrics-route"; -export * from "./port-forward-route"; export * from "./version-route"; diff --git a/src/main/routes/port-forward-route.ts b/src/main/routes/port-forward-route.ts deleted file mode 100644 index 6b849ab9d9..0000000000 --- a/src/main/routes/port-forward-route.ts +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import type { LensApiRequest } from "../router"; -import { respondJson } from "../utils/http-responses"; -import { PortForward } from "./port-forward/port-forward"; - -export class PortForwardRoute { - static async routeCurrentPortForward(request: LensApiRequest) { - const { params, query, response, cluster } = request; - const { namespace, resourceType, resourceName } = params; - const port = Number(query.get("port")); - const forwardPort = Number(query.get("forwardPort")); - - const portForward = PortForward.getPortforward({ - clusterId: cluster.id, kind: resourceType, name: resourceName, - namespace, port, forwardPort, - }); - - respondJson(response, { port: portForward?.forwardPort ?? null }); - } -} diff --git a/src/main/routes/port-forward2/get-current-port-forward-route.injectable.ts b/src/main/routes/port-forward2/get-current-port-forward-route.injectable.ts new file mode 100644 index 0000000000..678bc2dc2e --- /dev/null +++ b/src/main/routes/port-forward2/get-current-port-forward-route.injectable.ts @@ -0,0 +1,38 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import { routeInjectionToken } from "../../router/router.injectable"; +import type { LensApiRequest } from "../../router"; +import { apiPrefix } from "../../../common/vars"; +import { respondJson } from "../../utils/http-responses"; +import { PortForward } from "../port-forward/port-forward"; + +const getCurrentPortForward = async (request: LensApiRequest) => { + const { params, query, response, cluster } = request; + const { namespace, resourceType, resourceName } = params; + const port = Number(query.get("port")); + const forwardPort = Number(query.get("forwardPort")); + + const portForward = PortForward.getPortforward({ + clusterId: cluster.id, kind: resourceType, name: resourceName, + namespace, port, forwardPort, + }); + + respondJson(response, { port: portForward?.forwardPort ?? null }); +}; + +const getCurrentPortForwardRouteInjectable = getInjectable({ + id: "get-current-port-forward-route", + + instantiate: () => ({ + method: "get", + path: `${apiPrefix}/pods/port-forward/{namespace}/{resourceType}/{resourceName}`, + handler: getCurrentPortForward, + }), + + injectionToken: routeInjectionToken, +}); + +export default getCurrentPortForwardRouteInjectable;