* mv PaymentPage to web * mv 2 more components to web * refactor * update imports * mv * revert * fix * fix * update * migrate relevant test too * move setup components to web from appstore * move wipemycalother * mv * fix typechecks * mv more routing forms components * fix * fix * fix * fix: resolve type errors in SingleForm.tsx after migration - Updated SingleFormComponentProps type to include enriched form properties - Added proper typing for user, team, nonOrgUsername, nonOrgTeamslug, userOrigin, teamOrigin - Fixes type errors that occurred after migrating SingleForm.tsx from packages/app-store/routing-forms/components/ - Resolves both SingleForm.tsx and TestForm.tsx type errors Co-Authored-By: benny@cal.com <sldisek783@gmail.com> * delete * refactors * fix * fix * fix * remove usage of trpc client from OmniInstallAppButton.tsx * fix test * import only type * fix test * remove trpc package from appstore package.json * remove remaining trpc usage * update test * fix type checks * fix errors * fix * make it error * nit --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
50 lines
1.2 KiB
TypeScript
50 lines
1.2 KiB
TypeScript
import type { GetServerSidePropsContext } from "next";
|
|
import { z } from "zod";
|
|
|
|
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
|
|
import prisma from "@calcom/prisma";
|
|
|
|
import { hitpayCredentialKeysSchema } from "../../lib/hitpayCredentialKeysSchema";
|
|
|
|
export type IHitPaySetupProps = z.infer<typeof hitpayCredentialKeysSchema>;
|
|
|
|
export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
|
|
const notFound = { notFound: true } as const;
|
|
|
|
if (typeof ctx.params?.slug !== "string") return notFound;
|
|
|
|
const { req } = ctx;
|
|
const session = await getServerSession({ req });
|
|
|
|
if (!session?.user?.id) {
|
|
const redirect = { redirect: { permanent: false, destination: "/auth/login" } } as const;
|
|
|
|
return redirect;
|
|
}
|
|
|
|
const credentials = await prisma.credential.findFirst({
|
|
where: {
|
|
type: "hitpay_payment",
|
|
userId: session?.user.id,
|
|
},
|
|
});
|
|
|
|
let props: IHitPaySetupProps = {
|
|
isSandbox: false,
|
|
};
|
|
|
|
if (credentials?.key) {
|
|
const keyParsing = hitpayCredentialKeysSchema.safeParse(credentials.key);
|
|
if (keyParsing.success) {
|
|
props = {
|
|
...props,
|
|
...keyParsing.data,
|
|
};
|
|
}
|
|
}
|
|
|
|
return {
|
|
props,
|
|
};
|
|
};
|