1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/dashboard/client/api/endpoints/events.api.ts
Sebastian Malton b1ff34879a cleanup Lens repo with tighter linting
Signed-off-by: Sebastian Malton <smalton@mirantis.com>
2020-07-09 17:00:23 -04:00

60 lines
1.3 KiB
TypeScript

import moment from "moment";
import { KubeObject } from "../kube-object";
import { formatDuration } from "../../utils/formatDuration";
import { autobind } from "../../utils";
import { KubeApi } from "../kube-api";
@autobind()
export class KubeEvent extends KubeObject {
static kind = "Event"
involvedObject: {
kind: string;
namespace: string;
name: string;
uid: string;
apiVersion: string;
resourceVersion: string;
fieldPath: string;
}
reason: string
message: string
source: {
component: string;
host: string;
}
firstTimestamp: string
lastTimestamp: string
count: number
type: string
eventTime: null
reportingComponent: string
reportingInstance: string
isWarning(): boolean {
return this.type === "Warning";
}
getSource(): string {
const { component, host } = this.source;
return `${component} ${host || ""}`;
}
getFirstSeenTime(): string {
const diff = moment().diff(this.firstTimestamp);
return formatDuration(diff, true);
}
getLastSeenTime(): string {
const diff = moment().diff(this.lastTimestamp);
return formatDuration(diff, true);
}
}
export const eventApi = new KubeApi({
kind: KubeEvent.kind,
apiBase: "/api/v1/events",
isNamespaced: true,
objectConstructor: KubeEvent,
});