UNPKG

@wepublish/api

Version:
37 lines (36 loc) 1.58 kB
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[]>; }