55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import { z } from "zod";
|
|
import { messageEventTypes } from "../../event-handlers/message-event-types";
|
|
|
|
export const sendgridConfigurationEventObjectSchema = z.object({
|
|
active: z.boolean(),
|
|
eventType: z.enum(messageEventTypes),
|
|
template: z.string(),
|
|
});
|
|
|
|
export const sendgridConfigurationBaseObjectSchema = z.object({
|
|
active: z.boolean(),
|
|
configurationName: z.string().min(1),
|
|
sandboxMode: z.boolean(),
|
|
apiKey: z.string().min(1),
|
|
senderName: z.string().min(1).optional(),
|
|
senderEmail: z.string().email().min(5).optional(),
|
|
channels: z.object({
|
|
excludedFrom: z.array(z.string()),
|
|
restrictedTo: z.array(z.string()),
|
|
}),
|
|
});
|
|
|
|
export const sendgridCreateConfigurationSchema = sendgridConfigurationBaseObjectSchema.omit({
|
|
senderEmail: true,
|
|
senderName: true,
|
|
});
|
|
export const sendgridUpdateOrCreateConfigurationSchema =
|
|
sendgridConfigurationBaseObjectSchema.merge(
|
|
z.object({
|
|
id: z.string().optional(),
|
|
})
|
|
);
|
|
export const sendgridGetConfigurationInputSchema = z.object({
|
|
id: z.string(),
|
|
});
|
|
export const sendgridDeleteConfigurationInputSchema = z.object({
|
|
id: z.string(),
|
|
});
|
|
export const sendgridGetConfigurationsInputSchema = z
|
|
.object({
|
|
ids: z.array(z.string()).optional(),
|
|
active: z.boolean().optional(),
|
|
})
|
|
.optional();
|
|
|
|
export const sendgridUpdateEventConfigurationInputSchema = z
|
|
.object({
|
|
configurationId: z.string(),
|
|
})
|
|
.merge(sendgridConfigurationEventObjectSchema);
|
|
|
|
export const sendgridGetEventConfigurationInputSchema = z.object({
|
|
configurationId: z.string(),
|
|
eventType: z.enum(messageEventTypes),
|
|
});
|