* 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
30 lines
790 B
TypeScript
30 lines
790 B
TypeScript
import { TeamService } from "@calcom/features/ee/teams/services/teamService";
|
|
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
|
|
|
|
import type { TAcceptOrLeaveInputSchema } from "./acceptOrLeave.schema";
|
|
|
|
type AcceptOrLeaveOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
};
|
|
input: TAcceptOrLeaveInputSchema;
|
|
};
|
|
|
|
export const acceptOrLeaveHandler = async ({ ctx, input }: AcceptOrLeaveOptions) => {
|
|
if (input.accept) {
|
|
await TeamService.acceptTeamMembership({
|
|
userId: ctx.user.id,
|
|
teamId: input.teamId,
|
|
userEmail: ctx.user.email,
|
|
username: ctx.user.username,
|
|
});
|
|
} else {
|
|
await TeamService.leaveTeamMembership({
|
|
userId: ctx.user.id,
|
|
teamId: input.teamId,
|
|
});
|
|
}
|
|
};
|
|
|
|
export default acceptOrLeaveHandler;
|