* add eslint config * migrate autoLock to features * migrate teamService to features * migrate userCreationService * migrate insights services to features * migrate ProfileRepository * update imports * migrate filter segmen tests * migrate filter segment repository * migrate getBusyTimes * migrate getLocaleFromRequest * refactor csvUtils * make filename clearer * migrate getLuckyUser integration test * migrate autoLock test to features * wip * refactors * migrate useBookerUrl * migrate more * wip * Migrate eventTypeRepository * membership repository * update imports * update imports * migrate * move organization repository * update imports * update imports * wip * wip * wip * wip * wip * wip * wip * wip * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix tests * fix type checks * fix * fix * migrate * update imports * fix tests * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix
22 lines
816 B
TypeScript
22 lines
816 B
TypeScript
import { TeamService } from "@calcom/features/ee/teams/services/teamService";
|
|
|
|
import type {
|
|
IRemoveMemberService,
|
|
RemoveMemberContext,
|
|
RemoveMemberPermissionResult,
|
|
} from "./IRemoveMemberService";
|
|
|
|
/**
|
|
* Base abstract class for remove member services
|
|
* Provides common functionality and defines abstract methods for specific implementations
|
|
*/
|
|
export abstract class BaseRemoveMemberService implements IRemoveMemberService {
|
|
abstract checkRemovePermissions(context: RemoveMemberContext): Promise<RemoveMemberPermissionResult>;
|
|
|
|
abstract validateRemoval(context: RemoveMemberContext, hasPermission: boolean): Promise<void>;
|
|
|
|
async removeMembers(memberIds: number[], teamIds: number[], isOrg: boolean): Promise<void> {
|
|
await TeamService.removeMembers({ teamIds, userIds: memberIds, isOrg });
|
|
}
|
|
}
|