Files
mostlymatter/webapp/actions/team_actions.jsx
Joram Wilander 82b36b3721 PLT-6815 Do not disconnect websocket when joining a team (#6746)
* Do not disconnect websocket when joining a team

* Fix eslint error
2017-06-26 13:25:43 -04:00

201 строка
6.5 KiB
JavaScript

// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
import TeamStore from 'stores/team_store.jsx';
import ChannelStore from 'stores/channel_store.jsx';
import {browserHistory} from 'react-router/es6';
// Redux actions
import store from 'stores/redux_store.jsx';
const dispatch = store.dispatch;
const getState = store.getState;
import {Client4} from 'mattermost-redux/client';
import {getUser} from 'mattermost-redux/actions/users';
import {viewChannel} from 'mattermost-redux/actions/channels';
import * as TeamActions from 'mattermost-redux/actions/teams';
import {TeamTypes} from 'mattermost-redux/action_types';
export function checkIfTeamExists(teamName, onSuccess, onError) {
TeamActions.checkIfTeamExists(teamName)(dispatch, getState).then(
(exists) => {
if (exists != null && onSuccess) {
onSuccess(exists);
} else if (exists == null && onError) {
const serverError = getState().requests.teams.getTeam.error;
onError({id: serverError.server_error_id, ...serverError});
}
}
);
}
export function createTeam(team, onSuccess, onError) {
TeamActions.createTeam(team)(dispatch, getState).then(
(rteam) => {
if (rteam && onSuccess) {
browserHistory.push('/' + rteam.name + '/channels/town-square');
onSuccess(rteam);
} else if (rteam == null && onError) {
const serverError = getState().requests.teams.createTeam.error;
onError({id: serverError.server_error_id, ...serverError});
}
}
);
}
export function updateTeam(team, onSuccess, onError) {
TeamActions.updateTeam(team)(dispatch, getState).then(
(rteam) => {
if (rteam && onSuccess) {
browserHistory.push('/' + rteam.name + '/channels/town-square');
onSuccess(rteam);
} else if (rteam == null && onError) {
const serverError = getState().requests.teams.updateTeam.error;
onError({id: serverError.server_error_id, ...serverError});
}
},
);
}
export function removeUserFromTeam(teamId, userId, success, error) {
TeamActions.removeUserFromTeam(teamId, userId)(dispatch, getState).then(
(data) => {
getUser(userId)(dispatch, getState);
TeamActions.getTeamStats(teamId)(dispatch, getState);
if (data && success) {
success();
} else if (data == null && error) {
const serverError = getState().requests.teams.removeUserFromTeam.error;
error({id: serverError.server_error_id, ...serverError});
}
},
);
}
export function updateTeamMemberRoles(teamId, userId, newRoles, success, error) {
TeamActions.updateTeamMemberRoles(teamId, userId, newRoles)(dispatch, getState).then(
(data) => {
if (data && success) {
success();
} else if (data == null && error) {
const serverError = getState().requests.teams.updateTeamMember.error;
error({id: serverError.server_error_id, ...serverError});
}
}
);
}
export function addUserToTeamFromInvite(data, hash, inviteId, success, error) {
Client4.addToTeamFromInvite(hash, data, inviteId).then(
(member) => {
TeamActions.getTeam(member.team_id)(dispatch, getState).then(
(team) => {
dispatch({
type: TeamTypes.RECEIVED_MY_TEAM_MEMBER,
data: {
...member,
delete_at: 0,
msg_count: 0,
mention_count: 0
}
});
if (success) {
success(team);
}
}
);
},
).catch(
(err) => {
if (error) {
error(err);
}
}
);
}
export function addUsersToTeam(teamId, userIds, success, error) {
TeamActions.addUsersToTeam(teamId, userIds)(dispatch, getState).then(
(teamMembers) => {
if (teamMembers && success) {
success(teamMembers);
} else if (teamMembers == null && error) {
const serverError = getState().requests.teams.addUserToTeam.error;
error({id: serverError.server_error_id, ...serverError});
}
}
);
}
export function getInviteInfo(inviteId, success, error) {
Client4.getTeamInviteInfo(inviteId).then(
(inviteData) => {
if (success) {
success(inviteData);
}
}
).catch(
(err) => {
if (error) {
error(err);
}
}
);
}
export function inviteMembers(data, success, error) {
if (!data.invites) {
success();
}
const emails = [];
data.invites.forEach((i) => {
emails.push(i.email);
});
TeamActions.sendEmailInvitesToTeam(TeamStore.getCurrentId(), emails)(dispatch, getState).then(
(result) => {
if (result && success) {
success();
} else if (result == null && error) {
const serverError = getState().requests.teams.emailInvite.error;
error({id: serverError.server_error_id, ...serverError});
}
}
);
}
export function switchTeams(url) {
viewChannel(ChannelStore.getCurrentId())(dispatch, getState);
browserHistory.push(url);
}
export function getTeamsForUser(userId, success, error) {
TeamActions.getTeamsForUser(userId)(dispatch, getState).then(
(result) => {
if (result && success) {
success(result);
} else if (result == null && error) {
const serverError = getState().requests.teams.getTeams.error;
error({id: serverError.server_error_id, ...serverError});
}
}
);
}
export function getTeamMembersForUser(userId, success, error) {
TeamActions.getTeamMembersForUser(userId)(dispatch, getState).then(
(result) => {
if (result && success) {
success(result);
} else if (result == null && error) {
const serverError = getState().requests.teams.getTeamMembers.error;
error({id: serverError.server_error_id, ...serverError});
}
}
);
}