* 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
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import type { WebhookTriggerEvents, UserPermissionRole } from "@calcom/prisma/enums";
|
|
import type { Webhook } from "@calcom/prisma/client";
|
|
|
|
import type { WebhookSubscriber } from "../dto/types";
|
|
|
|
export interface GetSubscribersOptions {
|
|
userId?: number | null;
|
|
eventTypeId?: number | null;
|
|
triggerEvent: WebhookTriggerEvents;
|
|
teamId?: number | number[] | null;
|
|
orgId?: number | null;
|
|
oAuthClientId?: string | null;
|
|
}
|
|
|
|
type WebhookGroup = {
|
|
teamId?: number | null;
|
|
profile: {
|
|
slug: string | null;
|
|
name: string | null;
|
|
image?: string;
|
|
};
|
|
metadata?: {
|
|
canModify: boolean;
|
|
canDelete: boolean;
|
|
};
|
|
webhooks: Webhook[];
|
|
};
|
|
|
|
export interface IWebhookRepository {
|
|
getSubscribers(options: GetSubscribersOptions): Promise<WebhookSubscriber[]>;
|
|
getWebhookById(id: string): Promise<WebhookSubscriber | null>;
|
|
findByWebhookId(webhookId?: string): Promise<{
|
|
id: string;
|
|
subscriberUrl: string;
|
|
payloadTemplate: string | null;
|
|
active: boolean;
|
|
eventTriggers: WebhookTriggerEvents[];
|
|
secret: string | null;
|
|
teamId: number | null;
|
|
userId: number | null;
|
|
platform: boolean;
|
|
time: number | null;
|
|
timeUnit: string | null;
|
|
}>;
|
|
getFilteredWebhooksForUser(options: {
|
|
userId: number;
|
|
userRole?: UserPermissionRole;
|
|
}): Promise<{
|
|
webhookGroups: WebhookGroup[];
|
|
profiles: {
|
|
teamId: number | null | undefined;
|
|
slug: string | null;
|
|
name: string | null;
|
|
image?: string | undefined;
|
|
canModify?: boolean;
|
|
canDelete?: boolean;
|
|
}[];
|
|
}>;
|
|
}
|