Files
outline/plugins/notion/server/api/schema.ts
T
2026-02-15 22:54:50 -05:00

29 lines
806 B
TypeScript

import isEmpty from "lodash/isEmpty";
import { z } from "zod";
import { BaseSchema } from "@server/routes/api/schema";
export const NotionCallbackSchema = BaseSchema.extend({
query: z
.object({
code: z.string().nullish(),
state: z.string(),
error: z.string().nullish(),
})
.refine((req) => !(isEmpty(req.code) && isEmpty(req.error)), {
error: "one of code or error is required",
})
.refine((req) => isEmpty(req.code) || isEmpty(req.error), {
error: "code and error cannot both be present",
}),
});
export type NotionCallbackReq = z.infer<typeof NotionCallbackSchema>;
export const NotionSearchSchema = BaseSchema.extend({
body: z.object({
integrationId: z.uuid(),
}),
});
export type NotionSearchReq = z.infer<typeof NotionSearchSchema>;