88 lines
2.1 KiB
JavaScript
88 lines
2.1 KiB
JavaScript
import produce from 'immer';
|
|
import { getAgentConfigPath } from '../clusters_util';
|
|
|
|
export const hasErrors = ({ errors = [] }) => errors?.length;
|
|
|
|
export function addAgentToStore(store, createClusterAgent, query, variables) {
|
|
if (!hasErrors(createClusterAgent)) {
|
|
const { clusterAgent } = createClusterAgent;
|
|
const sourceData = store.readQuery({
|
|
query,
|
|
variables,
|
|
});
|
|
|
|
const data = produce(sourceData, (draftData) => {
|
|
const configuration = {
|
|
id: clusterAgent.id,
|
|
name: clusterAgent.name,
|
|
path: getAgentConfigPath(clusterAgent.name),
|
|
webPath: clusterAgent.webPath,
|
|
__typename: 'TreeEntry',
|
|
};
|
|
|
|
draftData.project.clusterAgents.nodes.push(clusterAgent);
|
|
draftData.project.clusterAgents.count += 1;
|
|
draftData.project.repository.tree.trees.nodes.push(configuration);
|
|
});
|
|
|
|
store.writeQuery({
|
|
query,
|
|
variables,
|
|
data,
|
|
});
|
|
}
|
|
}
|
|
|
|
export function addAgentConfigToStore(
|
|
store,
|
|
clusterAgentTokenCreate,
|
|
clusterAgent,
|
|
query,
|
|
variables,
|
|
) {
|
|
if (!hasErrors(clusterAgentTokenCreate)) {
|
|
const sourceData = store.readQuery({
|
|
query,
|
|
variables,
|
|
});
|
|
|
|
const data = produce(sourceData, (draftData) => {
|
|
const configuration = {
|
|
agentName: clusterAgent.name,
|
|
__typename: 'AgentConfiguration',
|
|
};
|
|
|
|
draftData.project.clusterAgents.nodes.push(clusterAgent);
|
|
draftData.project.agentConfigurations.nodes.push(configuration);
|
|
});
|
|
|
|
store.writeQuery({
|
|
query,
|
|
variables,
|
|
data,
|
|
});
|
|
}
|
|
}
|
|
|
|
export function removeAgentFromStore(store, deleteClusterAgent, query, variables) {
|
|
if (!hasErrors(deleteClusterAgent)) {
|
|
const sourceData = store.readQuery({
|
|
query,
|
|
variables,
|
|
});
|
|
|
|
const data = produce(sourceData, (draftData) => {
|
|
draftData.project.clusterAgents.nodes = draftData.project.clusterAgents.nodes.filter(
|
|
({ id }) => id !== deleteClusterAgent.id,
|
|
);
|
|
draftData.project.clusterAgents.count -= 1;
|
|
});
|
|
|
|
store.writeQuery({
|
|
query,
|
|
variables,
|
|
data,
|
|
});
|
|
}
|
|
}
|