diff --git a/types/mailgun-js/index.d.ts b/types/mailgun-js/index.d.ts index 1ff83c7bd9f986..6c56a721d6f84d 100644 --- a/types/mailgun-js/index.d.ts +++ b/types/mailgun-js/index.d.ts @@ -3,6 +3,7 @@ // Definitions by: Sampson Oliver // Andi Pätzold // Jiri Balcar +// Ryan Leonard // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 @@ -113,6 +114,11 @@ declare namespace Mailgun { 'recipient-variables'?: BatchSendRecipientVars; } + type SendTemplateData = SendData & { + template: string; + [templateVariable: string]: string; + }; + interface BatchSendRecipientVars { [email: string]: { first: string; @@ -232,7 +238,7 @@ declare namespace Mailgun { interface Messages { send( - data: messages.SendData | messages.BatchData, + data: messages.SendData | messages.BatchData | messages.SendTemplateData, callback?: (error: Error, body: messages.SendResponse) => void ): Promise; } diff --git a/types/mailgun-js/mailgun-js-tests.ts b/types/mailgun-js/mailgun-js-tests.ts index 245826e91965d9..da6a16f4910078 100644 --- a/types/mailgun-js/mailgun-js-tests.ts +++ b/types/mailgun-js/mailgun-js-tests.ts @@ -66,6 +66,14 @@ const arraySendData: mailgunFactory.messages.SendData = { mailgun.messages().send(arraySendData, (err, body) => {}); +const exampleSendDataWithTemplate: mailgunFactory.messages.SendTemplateData = { + to: "someone@email.com", + template: "my-template", + "v:template-variable": "foo", + }; + +const exampleSendDataTemplateResponse: Promise = mailgun.messages().send(exampleSendDataWithTemplate); + let validationResultPromise: Promise; validationResultPromise = mailgun.validate("foo@mailgun.net"); validationResultPromise = mailgun.validate("foo@mailgun.net", true);