diff --git a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-kube-resource.injectable.ts b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-kube-resource.injectable.ts index 01ca26f938..ea0581c6d4 100644 --- a/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-kube-resource.injectable.ts +++ b/packages/core/src/renderer/components/dock/edit-resource/edit-resource-model/request-kube-resource.injectable.ts @@ -3,11 +3,14 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; +import type { KubeObjectMetadata, KubeObjectScope } from "../../../../../common/k8s-api/kube-object"; import { KubeObject } from "../../../../../common/k8s-api/kube-object"; -import { parseKubeApi } from "../../../../../common/k8s-api/kube-api-parse"; import type { AsyncResult } from "@k8slens/utilities"; import { getErrorMessage } from "../../../../../common/utils/get-error-message"; import apiKubeInjectable from "../../../../k8s/api-kube.injectable"; +import type { Writable } from "type-fest"; +import type { KubeJsonApiData } from "../../../../../common/k8s-api/kube-json-api"; +import { parseKubeApi } from "../../../../../common/k8s-api/kube-api-parse"; export type RequestKubeResource = (selfLink: string) => AsyncResult; @@ -17,17 +20,21 @@ const requestKubeResourceInjectable = getInjectable({ instantiate: (di): RequestKubeResource => { const apiKube = di.inject(apiKubeInjectable); - return async (apiPath: string) => { - const parsed = parseKubeApi(apiPath); + return async (selfLink) => { + const parsed = parseKubeApi(selfLink); if (!parsed?.name) { return { callWasSuccessful: false, error: "Invalid API path" }; } try { + const rawData = await apiKube.get(selfLink) as KubeJsonApiData, unknown, unknown>; + + (rawData.metadata as Writable).selfLink = selfLink; + return { callWasSuccessful: true, - response: new KubeObject(await apiKube.get(apiPath)), + response: new KubeObject(rawData), }; } catch (e) { return { callWasSuccessful: false, error: getErrorMessage(e) };