diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-06-19 13:55:47 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-06-19 10:55:47 -0700 |
commit | ef9326bcbb461b4f3265f75a9f738e67e58b88d1 (patch) | |
tree | 1d2abc5304be4df51762985753ede12749f3bf43 /webapp/actions/integration_actions.jsx | |
parent | 1594cf8af102d0ffe7c62fc68004049e918a530a (diff) | |
download | chat-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.jsx | 171 |
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); +} |