@wepublish/api
Version:
API core for we.publish.
37 lines (36 loc) • 1.36 kB
TypeScript
import Client from 'mailgun.js/client';
import { MailLogStatus, MailProviderTemplate, SendMailProps, WebhookForSendMailProps, WithExternalId } from './mail-provider.interface';
import { BaseMailProvider, MailProviderProps } from './base-mail-provider';
export interface MailgunMailProviderProps extends MailProviderProps {
apiKey: string;
baseDomain: string;
mailDomain: string;
webhookEndpointSecret: string;
fromAddress: string;
mailgunClient: Client;
}
interface VerifyWebhookSignatureProps {
timestamp: string;
token: string;
signature: string;
}
interface MailgunApiError {
status: number;
details: string;
type: string;
}
export declare class MailgunMailProvider extends BaseMailProvider {
readonly auth: string;
readonly baseDomain: string;
readonly mailDomain: string;
readonly webhookEndpointSecret: string;
readonly mailgunClient: Client;
constructor(props: MailgunMailProviderProps);
verifyWebhookSignature(props: VerifyWebhookSignatureProps): boolean;
webhookForSendMail({ req }: WebhookForSendMailProps): Promise<MailLogStatus[]>;
sendMail(props: SendMailProps): Promise<void>;
getTemplates(): Promise<MailProviderTemplate[]>;
isMailgunApiError(error: unknown): error is MailgunApiError;
getTemplateUrl(template: WithExternalId): string;
}
export {};