diff --git a/src/nestjs-mailgun/services/relay/mailgun.service.ts b/src/nestjs-mailgun/services/relay/mailgun.service.ts index d8e35fc..670552e 100644 --- a/src/nestjs-mailgun/services/relay/mailgun.service.ts +++ b/src/nestjs-mailgun/services/relay/mailgun.service.ts @@ -5,6 +5,8 @@ import Mailgun, { CreateUpdateMailListMembers, DeletedMember, DestroyedList, + DomainTemplateUpdateVersionData, + DomainTemplatesQuery, MailListMember, MailListMembersQuery, MailListMembersResult, @@ -12,10 +14,19 @@ import Mailgun, { MailgunMessageData, MailingList, MultipleMembersData, + MutateDomainTemplateVersionResult, NewMultipleMembersResponse, + ListDomainTemplateVersionsResult, + DomainTemplateVersionData, + CreateDomainTemplateVersionResult, + DomainTemplateData, + DomainTemplateUpdateData, + UpdateOrDeleteDomainTemplateResult, + NotificationResult, + TemplateQuery } from 'mailgun.js'; import FormData from 'form-data'; -import { IMailgunClient } from 'mailgun.js/Interfaces'; +import { IDomainTemplate, IMailgunClient } from 'mailgun.js/Interfaces'; export type EmailOptions = MailgunMessageData; @@ -90,4 +101,71 @@ export class MailgunService { memberAddress: string, ): Promise => this.mailgun.lists.members.destroyMember(address, memberAddress); + + public getDomainTemplate = async ( + domain: string, + templateName: string, + query?: TemplateQuery + ): Promise => + this.mailgun.domains.domainTemplates.get(domain, templateName, query); + + public createDomainTemplate = async ( + domain: string, + data: DomainTemplateData + ): Promise => + this.mailgun.domains.domainTemplates.create(domain, data); + + public updateDomainTemplate = async ( + domain: string, + templateName: string, + data: DomainTemplateUpdateData + ): Promise => + this.mailgun.domains.domainTemplates.update(domain, templateName, data); + + public destroyDomainTemplate = async ( + domain: string, + templateName: string + ): Promise => + this.mailgun.domains.domainTemplates.destroy(domain, templateName); + + public destroyAllDomainTemplates = async ( + domain: string + ): Promise => + this.mailgun.domains.domainTemplates.destroyAll(domain); + + public createDomainTemplateVersion = async ( + domain: string, + templateName: string, + data: DomainTemplateVersionData + ): Promise => + this.mailgun.domains.domainTemplates.createVersion(domain, templateName, data); + + public getDomainTemplatesVersion = async ( + domain: string, + templateName: string, + versionTag: string + ): Promise => + this.mailgun.domains.domainTemplates.getVersion(domain, templateName, versionTag); + + public updateDomainTemplateVersion = async ( + domain: string, + templateName: string, + versionTag: string, + data: DomainTemplateUpdateVersionData + ): Promise => + this.mailgun.domains.domainTemplates.updateVersion(domain, templateName, versionTag, data); + + public destroyDomainTemplateVersion = async ( + domain: string, + templateName: string, + versionTag: string, + ): Promise => + this.mailgun.domains.domainTemplates.destroyVersion(domain, templateName, versionTag); + + public listDomainTemplateVersions = async ( + domain: string, + templateName: string, + query?: DomainTemplatesQuery + ): Promise => + this.mailgun.domains.domainTemplates.listVersions(domain, templateName, query); }