summaryrefslogtreecommitdiffstats
path: root/webapp/actions/integration_actions.jsx
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-06-19 13:55:47 -0400
committerChristopher Speller <crspeller@gmail.com>2017-06-19 10:55:47 -0700
commitef9326bcbb461b4f3265f75a9f738e67e58b88d1 (patch)
tree1d2abc5304be4df51762985753ede12749f3bf43 /webapp/actions/integration_actions.jsx
parent1594cf8af102d0ffe7c62fc68004049e918a530a (diff)
downloadchat-ef9326bcbb461b4f3265f75a9f738e67e58b88d1.tar.gz
chat-ef9326bcbb461b4f3265f75a9f738e67e58b88d1.tar.bz2
chat-ef9326bcbb461b4f3265f75a9f738e67e58b88d1.zip
Move integrations over to redux and v4 (#6679)
Diffstat (limited to 'webapp/actions/integration_actions.jsx')
-rw-r--r--webapp/actions/integration_actions.jsx171
1 files changed, 127 insertions, 44 deletions
diff --git a/webapp/actions/integration_actions.jsx b/webapp/actions/integration_actions.jsx
index c1bbf3432..39dbbb2a8 100644
--- a/webapp/actions/integration_actions.jsx
+++ b/webapp/actions/integration_actions.jsx
@@ -1,35 +1,26 @@
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
-import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
-
-import TeamStore from 'stores/team_store.jsx';
import UserStore from 'stores/user_store.jsx';
-
-import * as AsyncClient from 'utils/async_client.jsx';
-import Client from 'client/web_client.jsx';
-
-import {ActionTypes} from 'utils/constants.jsx';
+import TeamStore from 'stores/team_store.jsx';
// Redux actions
import store from 'stores/redux_store.jsx';
const dispatch = store.dispatch;
const getState = store.getState;
import {getProfilesByIds} from 'mattermost-redux/actions/users';
+import * as IntegrationActions from 'mattermost-redux/actions/integrations';
-export function loadIncomingHooks() {
- Client.listIncomingHooks(
+export function loadIncomingHooks(complete) {
+ IntegrationActions.getIncomingHooks('', 0, 10000)(dispatch, getState).then(
(data) => {
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_INCOMING_WEBHOOKS,
- teamId: TeamStore.getCurrentId(),
- incomingWebhooks: data
- });
-
- loadProfilesForIncomingHooks(data);
- },
- (err) => {
- AsyncClient.dispatchError(err, 'listIncomingHooks');
+ if (data) {
+ loadProfilesForIncomingHooks(data);
+ }
+
+ if (complete) {
+ complete(data);
+ }
}
);
}
@@ -51,19 +42,16 @@ function loadProfilesForIncomingHooks(hooks) {
getProfilesByIds(list)(dispatch, getState);
}
-export function loadOutgoingHooks() {
- Client.listOutgoingHooks(
+export function loadOutgoingHooks(complete) {
+ IntegrationActions.getOutgoingHooks('', '', 0, 10000)(dispatch, getState).then(
(data) => {
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_OUTGOING_WEBHOOKS,
- teamId: TeamStore.getCurrentId(),
- outgoingWebhooks: data
- });
-
- loadProfilesForOutgoingHooks(data);
- },
- (err) => {
- AsyncClient.dispatchError(err, 'listOutgoingHooks');
+ if (data) {
+ loadProfilesForOutgoingHooks(data);
+ }
+
+ if (complete) {
+ complete(data);
+ }
}
);
}
@@ -85,19 +73,16 @@ function loadProfilesForOutgoingHooks(hooks) {
getProfilesByIds(list)(dispatch, getState);
}
-export function loadTeamCommands() {
- Client.listTeamCommands(
+export function loadTeamCommands(complete) {
+ IntegrationActions.getCustomTeamCommands(TeamStore.getCurrentId())(dispatch, getState).then(
(data) => {
- AppDispatcher.handleServerAction({
- type: ActionTypes.RECEIVED_COMMANDS,
- teamId: Client.teamId,
- commands: data
- });
-
- loadProfilesForCommands(data);
- },
- (err) => {
- AsyncClient.dispatchError(err, 'loadTeamCommands');
+ if (data) {
+ loadProfilesForCommands(data);
+ }
+
+ if (complete) {
+ complete(data);
+ }
}
);
}
@@ -118,3 +103,101 @@ function loadProfilesForCommands(commands) {
getProfilesByIds(list)(dispatch, getState);
}
+
+export function addIncomingHook(hook, success, error) {
+ IntegrationActions.createIncomingHook(hook)(dispatch, getState).then(
+ (data) => {
+ if (data && success) {
+ success(data);
+ } else if (data == null && error) {
+ const serverError = getState().requests.integrations.createIncomingHook.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}
+
+export function updateIncomingHook(hook, success, error) {
+ IntegrationActions.updateIncomingHook(hook)(dispatch, getState).then(
+ (data) => {
+ if (data && success) {
+ success(data);
+ } else if (data == null && error) {
+ const serverError = getState().requests.integrations.updateIncomingHook.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}
+
+export function addOutgoingHook(hook, success, error) {
+ IntegrationActions.createOutgoingHook(hook)(dispatch, getState).then(
+ (data) => {
+ if (data && success) {
+ success(data);
+ } else if (data == null && error) {
+ const serverError = getState().requests.integrations.createOutgoingHook.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}
+
+export function updateOutgoingHook(hook, success, error) {
+ IntegrationActions.updateOutgoingHook(hook)(dispatch, getState).then(
+ (data) => {
+ if (data && success) {
+ success(data);
+ } else if (data == null && error) {
+ const serverError = getState().requests.integrations.updateOutgoingHook.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}
+
+export function deleteIncomingHook(id) {
+ IntegrationActions.removeIncomingHook(id)(dispatch, getState);
+}
+
+export function deleteOutgoingHook(id) {
+ IntegrationActions.removeOutgoingHook(id)(dispatch, getState);
+}
+
+export function regenOutgoingHookToken(id) {
+ IntegrationActions.regenOutgoingHookToken(id)(dispatch, getState);
+}
+
+export function addCommand(command, success, error) {
+ IntegrationActions.addCommand(command)(dispatch, getState).then(
+ (data) => {
+ if (data && success) {
+ success(data);
+ } else if (data == null && error) {
+ const serverError = getState().requests.integrations.addCommand.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}
+
+export function editCommand(command, success, error) {
+ IntegrationActions.editCommand(command)(dispatch, getState).then(
+ (data) => {
+ if (data && success) {
+ success(data);
+ } else if (data == null && error) {
+ const serverError = getState().requests.integrations.editCommand.error;
+ error({id: serverError.server_error_id, ...serverError});
+ }
+ }
+ );
+}
+
+export function deleteCommand(id) {
+ IntegrationActions.deleteCommand(id)(dispatch, getState);
+}
+
+export function regenCommandToken(id) {
+ IntegrationActions.regenCommandToken(id)(dispatch, getState);
+}