stitch-ui
Version:
77 lines (67 loc) • 2.29 kB
JavaScript
import { createAction } from "redux-act";
import { makeAsyncActions, asyncActionExecutor } from "../util";
const NAME = "push/";
export const setNewMessageError = createAction(`${NAME}set msg error`);
export const setNewMessageTopic = createAction(`${NAME}set msg topic`);
export const setNewMessageText = createAction(`${NAME}set msg text`);
export const setNewMessageLabel = createAction(`${NAME}set msg label`);
export const executePushPipelineActions = makeAsyncActions(
`${NAME}execute push pipeline`
);
export const createMessageActions = makeAsyncActions(`${NAME}create message`);
export const saveMessageActions = makeAsyncActions(`${NAME}save message`);
export const loadMessagesActions = makeAsyncActions(`${NAME}load messages`);
export const deleteMessageActions = makeAsyncActions(`${NAME}delete message`);
export const setMessageStatusActions = makeAsyncActions(
`${NAME}set message status`
);
export const executePushPipeline = asyncActionExecutor(
executePushPipelineActions,
(client, groupId, appId, pipeline) => () =>
client
.apps(groupId)
.app(appId)
.sandbox()
.executePipeline(pipeline, null, { systemUser: "1" }),
true
);
export const createMessage = asyncActionExecutor(
createMessageActions,
(client, groupId, appId, message) => () =>
client.apps(groupId).app(appId).messages().create(message),
true
);
export const saveMessage = asyncActionExecutor(
saveMessageActions,
(client, groupId, appId, messageId, message) => () =>
client
.apps(groupId)
.app(appId)
.messages()
.message(messageId)
.update(message),
true
);
export const deleteMessage = asyncActionExecutor(
deleteMessageActions,
(client, groupId, appId, messageId) => () =>
client.apps(groupId).app(appId).messages().message(messageId).remove(),
true
);
export const loadMessages = asyncActionExecutor(
loadMessagesActions,
(client, groupId, appId, query) => () =>
client.apps(groupId).app(appId).messages().list(query),
true
);
export const setMessageStatus = asyncActionExecutor(
setMessageStatusActions,
(client, groupId, appId, messageId, type) => () =>
client
.apps(groupId)
.app(appId)
.messages()
.message(messageId)
.setSaveType(type),
true
);