* perf: Slim down loggedInViewer tRPC router * Fixed trpc client calls for new routes * Moved bookingUnconfirmedCount * Moved getUserTopBanners to me router * Moved shouldVerifyEmail to me router * Moved i18n from public to its own router * fix ssrInit * fix ssrInit usage * fix type check * better naming * fix * fix * Fix types * Removed used of importHandler * perf: Move apps procedures off of loggedInViewer * Moved 2 more apps-related procedures --------- Co-authored-by: hbjORbj <sldisek783@gmail.com>
33 lines
997 B
TypeScript
33 lines
997 B
TypeScript
import getApps from "@calcom/app-store/utils";
|
|
import { getUsersCredentials } from "@calcom/lib/server/getUsersCredentials";
|
|
|
|
import { TRPCError } from "@trpc/server";
|
|
|
|
import type { TrpcSessionUser } from "../../../trpc";
|
|
import type { TAppByIdInputSchema } from "./appById.schema";
|
|
|
|
type AppByIdOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
};
|
|
input: TAppByIdInputSchema;
|
|
};
|
|
|
|
export const appByIdHandler = async ({ ctx, input }: AppByIdOptions) => {
|
|
const { user } = ctx;
|
|
const appId = input.appId;
|
|
const credentials = await getUsersCredentials(user);
|
|
const apps = getApps(credentials);
|
|
const appFromDb = apps.find((app) => app.slug === appId);
|
|
if (!appFromDb) {
|
|
throw new TRPCError({ code: "BAD_REQUEST", message: `Could not find app ${appId}` });
|
|
}
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
const { credential: _, credentials: _1, ...app } = appFromDb;
|
|
return {
|
|
isInstalled: appFromDb.credentials.length,
|
|
...app,
|
|
};
|
|
};
|