stitch-ui
Version:
84 lines (73 loc) • 2.67 kB
JavaScript
import { createAction } from "redux-act";
import { List } from "immutable";
import { makeAsyncActions, asyncActionExecutor } from "../util";
import { JSONState, Pipeline, PipelineStage, NamedPipeline } from "../models";
import { PIPELINE_OUTPUT_ARRAY } from "../models/Pipeline";
export const defaultNamedPipeline = new NamedPipeline({
name: "",
output: PIPELINE_OUTPUT_ARRAY,
skipRules: false,
canEvaluate: JSONState.fromRaw({}),
parameters: List(),
private: false,
pipeline: new Pipeline({
stages: List([
new PipelineStage({
action: "literal",
args: { items: [{ x: 1, y: "foo" }] }
})
]),
stageEditStates: List([null])
})
});
const NAME = "namedpipelines/";
export const setEditing = createAction(`${NAME}set editing`);
export const discardChanges = createAction(`${NAME}discard changes`);
export const loadPipelinesActions = makeAsyncActions(`${NAME}load pipelines`);
export const updatePipelineActions = makeAsyncActions(`${NAME}update pipeline`);
export const createPipelineActions = makeAsyncActions(`${NAME}create pipeline`);
export const removePipelineActions = makeAsyncActions(
`${NAME}remove pipeline actions`
);
export const addParameter = createAction(`${NAME}add parameter`);
export const removeParameter = createAction(`${NAME}remove parameter`);
export const updateParameter = createAction(`${NAME}update parameter`);
export const setSkipRules = createAction(`${NAME}set skip rules`);
export const setPrivate = createAction(`${NAME}set private`);
export const updateCanEvalInput = createAction(`${NAME}update can evaluate`);
export const setCanEval = createAction(`${NAME}set can evaluate`);
export const setSavePipelineErrorAction = createAction(
`${NAME}set pipeline form error`
);
export const loadPipelines = asyncActionExecutor(
loadPipelinesActions,
(client, groupId, appId) => () =>
client.apps(groupId).app(appId).pipelines().list()
);
export const createPipeline = asyncActionExecutor(
createPipelineActions,
(client, groupId, appId, pipelineId, pipeline) => () =>
client
.apps(groupId)
.app(appId)
.pipelines()
.pipeline(pipelineId)
.update(pipeline),
true
);
export const updatePipeline = asyncActionExecutor(
updatePipelineActions,
(client, groupId, appId, pipelineId, pipeline) => () =>
client
.apps(groupId)
.app(appId)
.pipelines()
.pipeline(pipelineId)
.update(pipeline),
true
);
export const removePipeline = asyncActionExecutor(
removePipelineActions,
(client, groupId, appId, pipelineId) => () =>
client.apps(groupId).app(appId).pipelines().pipeline(pipelineId).remove()
);