Files
calendar/packages/lib/server/service/membershipService.ts
T
Benny JooandGitHub ff38d6c7db refactor: Remove circular deps between @calcom/lib and @calcom/features [1] (#24399)
* 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
2025-10-13 12:01:02 -03:00

41 lines
1.1 KiB
TypeScript

import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
import { MembershipRole } from "@calcom/prisma/enums";
export type MembershipCheckResult = {
isMember: boolean;
isAdmin: boolean;
isOwner: boolean;
role?: MembershipRole;
};
export class MembershipService {
constructor(private readonly membershipRepository: MembershipRepository = new MembershipRepository()) {}
/**
* Checks the membership status of a user within a specific team.
*/
async checkMembership(teamId: number, userId: number): Promise<MembershipCheckResult> {
const membership = await MembershipRepository.findUniqueByUserIdAndTeamId({ teamId, userId });
if (!membership || !membership.accepted) {
return {
isMember: false,
isAdmin: false,
isOwner: false,
role: undefined,
};
}
const { role } = membership;
const isOwner = role === MembershipRole.OWNER;
const isAdmin = isOwner || role === MembershipRole.ADMIN;
return {
isMember: true,
isAdmin,
isOwner,
role,
};
}
}