* --init * clean up * unnecessary comment * remove comment * fix factory resolver * Add active filter to webhook query
30 lines
930 B
TypeScript
30 lines
930 B
TypeScript
import { getWebhookFeature } from "@calcom/features/di/webhooks/containers/webhook";
|
|
import type { WebhookGroup } from "@calcom/features/webhooks/lib/dto/types";
|
|
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
|
|
|
|
type GetByViewerOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
};
|
|
};
|
|
|
|
export type WebhooksByViewer = {
|
|
webhookGroups: WebhookGroup[];
|
|
profiles: {
|
|
readOnly?: boolean | undefined;
|
|
slug: string | null;
|
|
name: string | null;
|
|
image?: string | undefined;
|
|
teamId: number | null | undefined;
|
|
}[];
|
|
};
|
|
|
|
export const getByViewerHandler = async ({ ctx }: GetByViewerOptions): Promise<WebhooksByViewer> => {
|
|
// Use the singleton instance to avoid creating new instances repeatedly
|
|
const { repository: webhookRepository } = getWebhookFeature();
|
|
return await webhookRepository.getFilteredWebhooksForUser({
|
|
userId: ctx.user.id,
|
|
userRole: ctx.user.role,
|
|
});
|
|
};
|