stitch-ui
Version:
44 lines (35 loc) • 1.52 kB
JavaScript
import { createAction } from "redux-act";
import { makeAsyncActions, asyncActionExecutor } from "../util";
const NAME = "app/";
/* First run experience */
export const setDB = createAction(`${NAME}set db`);
export const setCollection = createAction(`${NAME}set collection`);
/* App and service loading */
export const loadAppActions = makeAsyncActions(`${NAME}load app`);
export const loadServicesActions = makeAsyncActions(`${NAME}load services`);
export const createServiceActions = makeAsyncActions(`${NAME}create service`);
export const loadAppsActions = makeAsyncActions(`${NAME}load apps`);
/* Modal for new services */
export const setError = createAction(`${NAME}set error`);
export const resetError = createAction(`${NAME}reset error`);
export const selectType = createAction(`${NAME}select service type`);
export const setSvcName = createAction(`${NAME}set service name`);
export const loadApp = asyncActionExecutor(
loadAppActions,
(client, groupId, appId) => client.apps(groupId).app(appId).get
);
export const loadApps = asyncActionExecutor(
loadAppsActions,
(client, groupId) => client.apps(groupId).list
);
export const createService = asyncActionExecutor(
createServiceActions,
(client, groupId, appId, svcName, type) => () =>
client.apps(groupId).app(appId).services().create({ name: svcName, type }),
true
);
export const loadServices = asyncActionExecutor(
loadServicesActions,
(client, groupId, appId) => () =>
client.apps(groupId).app(appId).services().list()
);