@wepublish/api
Version:
API core for we.publish.
37 lines (36 loc) • 1.58 kB
TypeScript
import { PrismaClient, UserEvent } from '@prisma/client';
import { BaseMailProvider } from './mail-provider/base-mail-provider';
import { MailProviderTemplate } from './mail-provider/mail-provider.interface';
import { MailControllerConfig } from './mail.controller';
export interface SendRemoteEMailProps {
readonly remoteTemplate: string;
readonly recipient: string;
readonly mailLogID: string;
readonly data: Record<string, any>;
}
export interface MailContextOptions {
readonly defaultFromAddress: string;
readonly defaultReplyToAddress?: string;
}
export interface MailContextInterface {
defaultFromAddress: string;
defaultReplyToAddress?: string;
sendMail(opts: MailControllerConfig): Promise<void>;
}
export interface MailContextProps extends MailContextOptions {
readonly mailProvider: BaseMailProvider;
readonly prisma: PrismaClient;
}
export declare class MailContext implements MailContextInterface {
mailProvider: BaseMailProvider;
prisma: PrismaClient;
defaultFromAddress: string;
defaultReplyToAddress?: string;
constructor(props: MailContextProps);
sendMail(opts: MailControllerConfig): Promise<void>;
sendRemoteTemplateDirect({ remoteTemplate, recipient, data, mailLogID }: SendRemoteEMailProps): Promise<void>;
getUserTemplateName(event: UserEvent, throwOnMissing: true): Promise<string>;
getUserTemplateName(event: UserEvent, throwOnMissing?: false): Promise<string | null>;
getTemplates(): Promise<MailProviderTemplate[]>;
getUsedTemplateIdentifiers(): Promise<string[]>;
}