forked from Ivasoft/mattermost-mobile
* Extract common observers to queries * Separate also queries and more agressive refactoring * Use query to avoid throws from findAndObserve * Fix minor error * Address feedback * Address feedback * Address feedback * Fix model types * Address feedback
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import DatabaseManager from '@database/manager';
|
|
import {prepareDeleteTeam, getMyTeamById, removeTeamFromTeamHistory} from '@queries/servers/team';
|
|
|
|
import type TeamModel from '@typings/database/models/servers/team';
|
|
|
|
export const removeUserFromTeam = async (serverUrl: string, teamId: string) => {
|
|
const serverDatabase = DatabaseManager.serverDatabases[serverUrl];
|
|
if (!serverDatabase) {
|
|
return;
|
|
}
|
|
|
|
const {operator, database} = serverDatabase;
|
|
|
|
const myTeam = await getMyTeamById(database, teamId);
|
|
if (myTeam) {
|
|
const team = await myTeam.team.fetch() as TeamModel;
|
|
const models = await prepareDeleteTeam(team);
|
|
const system = await removeTeamFromTeamHistory(operator, team.id, true);
|
|
if (system) {
|
|
models.push(...system);
|
|
}
|
|
if (models.length) {
|
|
try {
|
|
await operator.batchRecords(models);
|
|
} catch {
|
|
// eslint-disable-next-line no-console
|
|
console.log('FAILED TO BATCH CHANGES FOR REMOVE USER FROM TEAM');
|
|
}
|
|
}
|
|
}
|
|
};
|