* feat: disable transcription setting in cal video * feat: add enable automatic recording feature * chore: only when organizer joins * chore: update name of variable * fix: improvements * chore: improvements * chore: add badge * refactor: cal video premium * tests: add tests for cal video * fix: use isOrganizer * Simplify type to remove 'as SessionUser' from new code --------- Co-authored-by: Benny Joo <sldisek783@gmail.com> Co-authored-by: Alex van Andel <me@alexvanandel.com>
79 lines
3.5 KiB
TypeScript
79 lines
3.5 KiB
TypeScript
import prisma from "@calcom/prisma";
|
|
|
|
export class CalVideoSettingsRepository {
|
|
static async deleteCalVideoSettings(eventTypeId: number) {
|
|
return await prisma.calVideoSettings.delete({
|
|
where: { eventTypeId },
|
|
});
|
|
}
|
|
|
|
static async createCalVideoSettings({
|
|
eventTypeId,
|
|
calVideoSettings,
|
|
}: {
|
|
eventTypeId: number;
|
|
calVideoSettings: {
|
|
disableRecordingForGuests?: boolean | null;
|
|
disableRecordingForOrganizer?: boolean | null;
|
|
enableAutomaticTranscription?: boolean | null;
|
|
enableAutomaticRecordingForOrganizer?: boolean | null;
|
|
disableTranscriptionForGuests?: boolean | null;
|
|
disableTranscriptionForOrganizer?: boolean | null;
|
|
redirectUrlOnExit?: string | null;
|
|
};
|
|
}) {
|
|
return await prisma.calVideoSettings.create({
|
|
data: {
|
|
disableRecordingForGuests: calVideoSettings.disableRecordingForGuests ?? false,
|
|
disableRecordingForOrganizer: calVideoSettings.disableRecordingForOrganizer ?? false,
|
|
enableAutomaticTranscription: calVideoSettings.enableAutomaticTranscription ?? false,
|
|
enableAutomaticRecordingForOrganizer: calVideoSettings.enableAutomaticRecordingForOrganizer ?? false,
|
|
disableTranscriptionForGuests: calVideoSettings.disableTranscriptionForGuests ?? false,
|
|
disableTranscriptionForOrganizer: calVideoSettings.disableTranscriptionForOrganizer ?? false,
|
|
redirectUrlOnExit: calVideoSettings.redirectUrlOnExit ?? null,
|
|
eventTypeId,
|
|
},
|
|
});
|
|
}
|
|
|
|
static async createOrUpdateCalVideoSettings({
|
|
eventTypeId,
|
|
calVideoSettings,
|
|
}: {
|
|
eventTypeId: number;
|
|
calVideoSettings: {
|
|
disableRecordingForGuests?: boolean | null;
|
|
disableRecordingForOrganizer?: boolean | null;
|
|
disableTranscriptionForGuests?: boolean | null;
|
|
disableTranscriptionForOrganizer?: boolean | null;
|
|
enableAutomaticTranscription?: boolean | null;
|
|
enableAutomaticRecordingForOrganizer?: boolean | null;
|
|
redirectUrlOnExit?: string | null;
|
|
};
|
|
}) {
|
|
return await prisma.calVideoSettings.upsert({
|
|
where: { eventTypeId },
|
|
update: {
|
|
disableRecordingForGuests: calVideoSettings.disableRecordingForGuests ?? false,
|
|
disableRecordingForOrganizer: calVideoSettings.disableRecordingForOrganizer ?? false,
|
|
enableAutomaticTranscription: calVideoSettings.enableAutomaticTranscription ?? false,
|
|
enableAutomaticRecordingForOrganizer: calVideoSettings.enableAutomaticRecordingForOrganizer ?? false,
|
|
disableTranscriptionForGuests: calVideoSettings.disableTranscriptionForGuests ?? false,
|
|
disableTranscriptionForOrganizer: calVideoSettings.disableTranscriptionForOrganizer ?? false,
|
|
redirectUrlOnExit: calVideoSettings.redirectUrlOnExit ?? null,
|
|
updatedAt: new Date(),
|
|
},
|
|
create: {
|
|
disableRecordingForGuests: calVideoSettings.disableRecordingForGuests ?? false,
|
|
disableRecordingForOrganizer: calVideoSettings.disableRecordingForOrganizer ?? false,
|
|
enableAutomaticTranscription: calVideoSettings.enableAutomaticTranscription ?? false,
|
|
enableAutomaticRecordingForOrganizer: calVideoSettings.enableAutomaticRecordingForOrganizer ?? false,
|
|
disableTranscriptionForGuests: calVideoSettings.disableTranscriptionForGuests ?? false,
|
|
disableTranscriptionForOrganizer: calVideoSettings.disableTranscriptionForOrganizer ?? false,
|
|
redirectUrlOnExit: calVideoSettings.redirectUrlOnExit ?? null,
|
|
eventTypeId,
|
|
},
|
|
});
|
|
}
|
|
}
|