2
0
Files
cal/calcom/packages/app-store/alby/pages/setup/_getServerSideProps.tsx
2024-08-09 00:39:27 +02:00

55 lines
1.4 KiB
TypeScript

import type { GetServerSidePropsContext } from "next";
import { getServerSession } from "@calcom/features/auth/lib/getServerSession";
import prisma from "@calcom/prisma";
import { getAlbyKeys } from "../../lib/getAlbyKeys";
import type { IAlbySetupProps } from "./index";
export const getServerSideProps = async (ctx: GetServerSidePropsContext) => {
const notFound = { notFound: true } as const;
if (typeof ctx.params?.slug !== "string") return notFound;
const { req, res } = ctx;
const session = await getServerSession({ req, res });
if (!session?.user?.id) {
const redirect = { redirect: { permanent: false, destination: "/auth/login" } } as const;
return redirect;
}
const credentials = await prisma.credential.findFirst({
where: {
type: "alby_payment",
userId: session?.user.id,
},
});
const { client_id: clientId, client_secret: clientSecret } = await getAlbyKeys();
const props: IAlbySetupProps = {
email: null,
lightningAddress: null,
clientId,
clientSecret,
};
if (credentials?.key) {
const { account_lightning_address, account_email } = credentials.key as {
account_lightning_address?: string;
account_email?: string;
};
if (account_lightning_address) {
props.lightningAddress = account_lightning_address;
}
if (account_email) {
props.email = account_email;
}
}
return {
props,
};
};