Files
calendar/packages/trpc/server/routers/viewer/delegationCredential/getAffectedMembersForDisable.handler.ts
Benny JooandGitHub e91bf53d80 refactor: Remove circular deps between @calcom/lib and @calcom/features [2] (#24438)
* move SystemField to features

* migrate workflow service

* merge two tests for team repository

* update imports and migrate team repository

* migrate delegation credential repository

* migrate credential repository

* migrate entityPermissionUtils

* migrate hashedLink service and repository

* migrate membership service

* update imports

* remove file

* migrate buildEventUrlFromBooking

* migrate getAllUserBookings to features

* update imports

* update organizationMock

* migrate slots

* migrate date-ranges to schedules dir

* migrate getAggregatedAvailability

* fix

* refactor

* migrate useCreateEventType hook to features

* migrate assignValueToUser

* migrate validateUsername to auth features

* migrate system field back to lib

* migrate getLabelValueMapFromResponses back to lib

* update imports

* use relative path

* fix type checks

* fix

* fix

* fix tests

* update gh codeowners

* fix

* fix
2025-10-17 06:48:08 -03:00

49 lines
1.7 KiB
TypeScript

import logger from "@calcom/lib/logger";
import { DelegationCredentialRepository } from "@calcom/features/delegation-credentials/repositories/DelegationCredentialRepository";
import { MembershipRepository } from "@calcom/features/membership/repositories/MembershipRepository";
import type { TDelegationCredentialGetAffectedMembersForDisableSchema } from "./schema";
const log = logger.getSubLogger({ prefix: ["[DelegationCredential]"] });
export async function getAffectedMembersForDisable({
delegationCredentialId,
}: {
delegationCredentialId: string;
}) {
const delegationCredential = await DelegationCredentialRepository.findById({ id: delegationCredentialId });
if (!delegationCredential) {
// If we cant find the delegation credential, we assume no members were affected
return [];
}
const lastEnabledAt = delegationCredential.lastEnabledAt;
if (!lastEnabledAt) {
log.info(
`Delegation credential ${delegationCredentialId} has no lastEnabledAt, so assuming no members were affected`
);
return [];
}
// Find members who joined after the delegation credential was last enabled
const membershipsThatCouldPotentiallyBeAffected =
await MembershipRepository.findMembershipsCreatedAfterTimeIncludeUser({
organizationId: delegationCredential.organizationId,
time: lastEnabledAt,
});
return membershipsThatCouldPotentiallyBeAffected.map((membership) => ({
email: membership.user.email,
name: membership.user.name,
id: membership.user.id,
}));
}
export default function getAffectedMembersForDisableHandler({
input,
}: {
input: TDelegationCredentialGetAffectedMembersForDisableSchema;
}) {
return getAffectedMembersForDisable({
delegationCredentialId: input.id,
});
}