Files
calendar/packages/trpc/server/routers/publicViewer/_router.tsx
T
Udit TakkarandGitHub e075dcdeaa feat: create new markNoShow endpoint (#15738)
* feat: create new markNoShow endpoint

* chore: add schema

* chore: update name

* chore: save progress

* refactor: improve code and types

* fix: unit test

* chore: improvements

* chore: move query to booking repository

* fix: type error
2024-08-07 15:16:31 +05:30

74 lines
3.0 KiB
TypeScript

import publicProcedure from "../../procedures/publicProcedure";
import { importHandler, router } from "../../trpc";
import { slotsRouter } from "../viewer/slots/_router";
import { ZUserEmailVerificationRequiredSchema } from "./checkIfUserEmailVerificationRequired.schema";
import { i18nInputSchema } from "./i18n.schema";
import { ZMarkHostAsNoShowInputSchema } from "./markHostAsNoShow.schema";
import { event } from "./procedures/event";
import { session } from "./procedures/session";
import { ZSamlTenantProductInputSchema } from "./samlTenantProduct.schema";
import { ZStripeCheckoutSessionInputSchema } from "./stripeCheckoutSession.schema";
import { ZSubmitRatingInputSchema } from "./submitRating.schema";
const NAMESPACE = "publicViewer";
const namespaced = (s: string) => `${NAMESPACE}.${s}`;
// things that unauthenticated users can query about themselves
export const publicViewerRouter = router({
session,
i18n: publicProcedure.input(i18nInputSchema).query(async (opts) => {
const handler = await importHandler(namespaced("i18n"), () => import("./i18n.handler"));
return handler(opts);
}),
countryCode: publicProcedure.query(async (opts) => {
const handler = await importHandler(namespaced("countryCode"), () => import("./countryCode.handler"));
return handler(opts);
}),
submitRating: publicProcedure.input(ZSubmitRatingInputSchema).mutation(async (opts) => {
const handler = await importHandler(namespaced("submitRating"), () => import("./submitRating.handler"));
return handler(opts);
}),
markHostAsNoShow: publicProcedure.input(ZMarkHostAsNoShowInputSchema).mutation(async (opts) => {
const handler = await importHandler(
namespaced("markHostAsNoShow"),
() => import("./markHostAsNoShow.handler")
);
return handler(opts);
}),
samlTenantProduct: publicProcedure.input(ZSamlTenantProductInputSchema).mutation(async (opts) => {
const handler = await importHandler(
namespaced("samlTenantProduct"),
() => import("./samlTenantProduct.handler")
);
return handler(opts);
}),
stripeCheckoutSession: publicProcedure.input(ZStripeCheckoutSessionInputSchema).query(async (opts) => {
const handler = await importHandler(
namespaced("stripeCheckoutSession"),
() => import("./stripeCheckoutSession.handler")
);
return handler(opts);
}),
// REVIEW: This router is part of both the public and private viewer router?
slots: slotsRouter,
event,
ssoConnections: publicProcedure.query(async () => {
const handler = await importHandler(
namespaced("ssoConnections"),
() => import("./ssoConnections.handler")
);
return handler();
}),
checkIfUserEmailVerificationRequired: publicProcedure
.input(ZUserEmailVerificationRequiredSchema)
.query(async (opts) => {
const handler = await importHandler(
namespaced("checkIfUserEmailVerificationRequired"),
() => import("./checkIfUserEmailVerificationRequired.handler")
);
return handler(opts);
}),
});