Files
calendar/packages/app-store/btcpayserver/pages/setup/_getServerSideProps.tsx
T
Benny JooGitHubbenny@cal.com <sldisek783@gmail.com>Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
76bba1ca05 refactor: remove circular dependency between appstore and trpc (#23768)
* 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>
2025-09-14 12:51:05 +00:00

39 lines
1.3 KiB
TypeScript

import type { GetServerSidePropsContext } from "next";
import { z } from "zod";
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import { CredentialRepository } from "@calcom/lib/server/repository/credential";
import { btcpayCredentialKeysSchema } from "../../lib/btcpayCredentialKeysSchema";
export type IBTCPaySetupProps = z.infer<typeof btcpayCredentialKeysSchema>;
export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
try {
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) return { redirect: { permanent: false, destination: "/auth/login" } };
const credential = await CredentialRepository.findFirstByUserIdAndType({
userId: session.user.id,
type: "btcpayserver_payment",
});
let props: IBTCPaySetupProps | undefined;
if (credential?.key) {
const keyParsing = btcpayCredentialKeysSchema.safeParse(credential.key);
if (keyParsing.success) {
props = keyParsing.data;
}
}
return { props: props ?? {} };
} catch (error) {
return {
props: {},
};
}
};