frontend/requests/deployments.ts
2025-11-06 15:02:04 +01:00

49 lines
1.4 KiB
TypeScript

import axios from "axios";
import type { Deployment } from "~/classes/Deployment";
export function getDeployments(namespace: string | undefined, onSuccess: (deployments: Deployment[]) => void)
{
axios.get<Deployment[]>(ApiConfig.getHttpBase() + '/deployments', {
headers: {
Authorization: "Bearer " + requireToken()
},
params: getParams(namespace)
})
.then((response) => {
onSuccess(response.data);
})
.catch();
}
export function rescaleDeployment(deployment: Deployment | undefined, replicaCount: number, onSuccess: () => void)
{
if(deployment == null || deployment.metadata == null)
{
throw new Error("Deployment or metadata cannot be null");
}
if(deployment.metadata.name == null || deployment.metadata.namespace == null)
{
throw new Error("Name or namespace cannot be null");
}
axios.patch<Deployment[]>(ApiConfig.getHttpBase() + '/deployments/' + deployment.metadata.namespace + "/" + deployment.metadata.name, replicaCount, {
headers: {
Authorization: "Bearer " + requireToken(),
"Content-Type": "text/plain"
}
})
.then(() => {
onSuccess();
})
.catch();
}
function getParams(namespace: string | undefined)
{
if(namespace != undefined)
{
return {
namespace: namespace
}
}
return undefined;
}