diff --git a/src/main/router.ts b/src/main/router.ts index e20bba1e65..8a102fb0a0 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); // Resource Applier API - this.router.add({ method: "post", path: `${apiPrefix}/stack` }, ResourceApplierApiRoute.applyResource); this.router.add({ method: "patch", path: `${apiPrefix}/stack` }, ResourceApplierApiRoute.patchResource); } } diff --git a/src/main/routes/resource-applier-route.ts b/src/main/routes/resource-applier-route.ts index 1072050b9a..25d2b2496d 100644 --- a/src/main/routes/resource-applier-route.ts +++ b/src/main/routes/resource-applier-route.ts @@ -8,18 +8,6 @@ import { respondJson, respondText } from "../utils/http-responses"; import { ResourceApplier } from "../resource-applier"; export class ResourceApplierApiRoute { - static async applyResource(request: LensApiRequest) { - const { response, cluster, payload } = request; - - try { - const resource = await new ResourceApplier(cluster).apply(payload); - - respondJson(response, resource, 200); - } catch (error) { - respondText(response, error, 422); - } - } - static async patchResource(request: LensApiRequest) { const { response, cluster, payload } = request; diff --git a/src/main/routes/resource-applier/apply-resource-route.injectable.ts b/src/main/routes/resource-applier/apply-resource-route.injectable.ts new file mode 100644 index 0000000000..910efd81c2 --- /dev/null +++ b/src/main/routes/resource-applier/apply-resource-route.injectable.ts @@ -0,0 +1,35 @@ +/** + * 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 { ResourceApplier } from "../../resource-applier"; +import { respondJson, respondText } from "../../utils/http-responses"; + +const applyResourceRouteInjectable = getInjectable({ + id: "apply-resource-route", + + instantiate: () => ({ + method: "post", + path: `${apiPrefix}/stack`, + + handler: async (request: LensApiRequest) => { + const { response, cluster, payload } = request; + + try { + const resource = await new ResourceApplier(cluster).apply(payload); + + respondJson(response, resource, 200); + } catch (error) { + respondText(response, error, 422); + } + }, + }), + + injectionToken: routeInjectionToken, +}); + +export default applyResourceRouteInjectable;