diff --git a/src/main/router.ts b/src/main/router.ts index 4d10e212f8..257eef48d5 100644 --- a/src/main/router.ts +++ b/src/main/router.ts @@ -183,7 +183,6 @@ export class Router { this.router.add({ method: "delete", path: `${apiPrefix}/pods/port-forward/{namespace}/{resourceType}/{resourceName}` }, PortForwardRoute.routeCurrentPortForwardStop); // Helm API - this.router.add({ method: "get", path: `${apiPrefix}/v2/releases/{namespace}/{release}/values` }, HelmApiRoute.getReleaseValues); this.router.add({ method: "get", path: `${apiPrefix}/v2/releases/{namespace}/{release}/history` }, HelmApiRoute.getReleaseHistory); this.router.add({ method: "delete", path: `${apiPrefix}/v2/releases/{namespace}/{release}` }, HelmApiRoute.deleteRelease); diff --git a/src/main/routes/helm/releases/get-release-values-route.injectable.ts b/src/main/routes/helm/releases/get-release-values-route.injectable.ts new file mode 100644 index 0000000000..9cd38b0153 --- /dev/null +++ b/src/main/routes/helm/releases/get-release-values-route.injectable.ts @@ -0,0 +1,39 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { apiPrefix } from "../../../../common/vars"; +import type { LensApiRequest } from "../../../router"; +import { helmService } from "../../../helm/helm-service"; +import { respondText } from "../../../utils/http-responses"; +import { routeInjectionToken } from "../../../router/router.injectable"; +import { getInjectable } from "@ogre-tools/injectable"; +import logger from "../../../logger"; +import { getBoolean } from "../../../utils/parse-query"; + +const getReleaseRouteValuesInjectable = getInjectable({ + id: "get-release-values-route", + + instantiate: () => ({ + method: "get", + path: `${apiPrefix}/v2/releases/{namespace}/{release}/values`, + + handler: async (request: LensApiRequest) => { + const { cluster, params: { namespace, release }, response, query } = request; + const all = getBoolean(query, "all"); + + try { + const result = await helmService.getReleaseValues(release, { cluster, namespace, all }); + + respondText(response, result); + } catch (error) { + logger.debug(error); + respondText(response, error?.toString() || "Error getting release values", 422); + } + }, + }), + + injectionToken: routeInjectionToken, +}); + +export default getReleaseRouteValuesInjectable;