Files
mostlymatter/webapp/actions/team_actions.jsx
2017-02-13 09:27:28 -05:00

153 строки
3.7 KiB
JavaScript

// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
import UserStore from 'stores/user_store.jsx';
import TeamStore from 'stores/team_store.jsx';
import Constants from 'utils/constants.jsx';
const ActionTypes = Constants.ActionTypes;
import * as AsyncClient from 'utils/async_client.jsx';
import Client from 'client/web_client.jsx';
import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
import {browserHistory} from 'react-router/es6';
export function checkIfTeamExists(teamName, onSuccess, onError) {
Client.findTeamByName(teamName, onSuccess, onError);
}
export function createTeam(team, onSuccess, onError) {
Client.createTeam(team,
(rteam) => {
AppDispatcher.handleServerAction({
type: ActionTypes.CREATED_TEAM,
team: rteam,
member: {team_id: rteam.id, user_id: UserStore.getCurrentId(), roles: 'team_admin team_user'}
});
browserHistory.push('/' + rteam.name + '/channels/town-square');
if (onSuccess) {
onSuccess(rteam);
}
},
onError
);
}
export function updateTeam(team, onSuccess, onError) {
Client.updateTeam(team,
(rteam) => {
AppDispatcher.handleServerAction({
type: ActionTypes.UPDATE_TEAM,
team: rteam
});
browserHistory.push('/' + rteam.name + '/channels/town-square');
if (onSuccess) {
onSuccess(rteam);
}
},
onError
);
}
export function removeUserFromTeam(teamId, userId, success, error) {
Client.removeUserFromTeam(
teamId,
userId,
() => {
TeamStore.removeMemberInTeam(teamId, userId);
UserStore.removeProfileFromTeam(teamId, userId);
UserStore.emitInTeamChange();
AsyncClient.getUser(userId);
AsyncClient.getTeamStats(teamId);
if (success) {
success();
}
},
(err) => {
AsyncClient.dispatchError(err, 'removeUserFromTeam');
if (error) {
error(err);
}
}
);
}
export function updateTeamMemberRoles(teamId, userId, newRoles, success, error) {
Client.updateTeamMemberRoles(teamId, userId, newRoles,
() => {
AsyncClient.getTeamMember(teamId, userId);
if (success) {
success();
}
},
(err) => {
if (error) {
error(err);
}
}
);
}
export function addUserToTeamFromInvite(data, hash, inviteId, success, error) {
Client.addUserToTeamFromInvite(
data,
hash,
inviteId,
(team) => {
if (success) {
success(team);
}
},
(err) => {
if (error) {
error(err);
}
}
);
}
export function getInviteInfo(inviteId, success, error) {
Client.getInviteInfo(
inviteId,
(inviteData) => {
if (success) {
success(inviteData);
}
},
(err) => {
if (error) {
error(err);
}
}
);
}
export function inviteMembers(data, success, error) {
Client.inviteMembers(
data,
() => {
if (success) {
success();
}
},
(err) => {
if (err) {
error(err);
}
}
);
}
export function switchTeams(url) {
AsyncClient.viewChannel();
browserHistory.push(url);
}