UNPKG

stitch-ui

Version:

44 lines (35 loc) 1.52 kB
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() );