* added lockedSMS to future routes * add orgMigrations routes to future * correct metadata * small fix * add orgMigrations to future * Move components to client components * Remove tRPC element from edit user RSC * Get username for meta * Remove suspense query * Remove orgMigrations from app router * Type fix * Revert "Remove suspense query" This reverts commit eadd814f6e4a5d6856d9218342b7909c22fe62c6. * Handle suspenseQuery in app router * User edit page, fetch data server side * Update yarn.lock * Export getFixedT * Set PageWrapper as root layout for settings * Settings Layout accepts strings for shell heading * Add OOO to app router settings * Refactor layout for my-account pages * Remove instances of pages router from my-account * Refactor security pages * Add billing to app router * Add admin API link to layout * Add api keys page * Webhooks WIP * Refactor SettingsHeader to client component * Add webhook pages * Refactor API keys page * Add admin app page * Type fix * fix types * fix developer/webhooks/[id] param value type error * remove unnecessary code * do not pass t prop to CreateNewWebhookButton * fix type errors in webhook-edit-view * fix the remaining type errors * do not use prisma directly in generateMetadata * remove use client if unnecessary * Remove unused shell heading from SettingsLayoutAppDir * improve metadata * fix billing page * fix import in settings/teams * Use next `notFound()` * fix type check * fix type check * remove unused code * Fix calendar setting page * Separate settings pages into route groups * Refactor admin settings pages * Remove meta instance from billing page route * Update settings layoutAppDir * Refactor developer settings pages * Refactor out of office * Refactor my account settings * Refactor admin api page * Refactor security pages * Type fix * fix styling in settings layout --------- Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com> Co-authored-by: Omar López <zomars@me.com> Co-authored-by: Benny Joo <sldisek783@gmail.com>
42 lines
985 B
TypeScript
42 lines
985 B
TypeScript
import { WebhookRepository } from "@calcom/lib/server/repository/webhook";
|
|
import type { Webhook } from "@calcom/prisma/client";
|
|
import type { TrpcSessionUser } from "@calcom/trpc/server/trpc";
|
|
|
|
type GetByViewerOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
};
|
|
};
|
|
|
|
type WebhookGroup = {
|
|
teamId?: number | null;
|
|
profile: {
|
|
slug: string | null;
|
|
name: string | null;
|
|
image?: string;
|
|
};
|
|
metadata?: {
|
|
readOnly: boolean;
|
|
};
|
|
webhooks: Webhook[];
|
|
};
|
|
|
|
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) => {
|
|
return await WebhookRepository.getAllWebhooksByUserId({
|
|
userId: ctx.user.id,
|
|
organizationId: ctx.user.profile?.organizationId,
|
|
userRole: ctx.user.role,
|
|
});
|
|
};
|