UNPKG

@tonightpass/nestjs-mailjet

Version:

NestJS module for integrating Mailjet email service with your NestJS applications

2 lines 4.11 kB
'use strict';var axios=require('@nestjs/axios'),common=require('@nestjs/common'),nodeMailjet=require('node-mailjet');var m=Object.defineProperty;var v=(o,t,e)=>t in o?m(o,t,{enumerable:true,configurable:true,writable:true,value:e}):o[t]=e;var n=(o,t)=>m(o,"name",{value:t,configurable:true});var y=(o,t,e)=>v(o,t+"",e);var u="MAILJET_MODULE_OPTIONS";function b(o){return [{provide:u,useValue:o}]}n(b,"createMailjetProviders");function h(o,t,e,r){var i=arguments.length,s=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(c=o[a])&&(s=(i<3?c(s):i>3?c(t,e,s):c(t,e))||s);return i>3&&s&&Object.defineProperty(t,e,s),s}n(h,"_ts_decorate");function O(o,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,t)}n(O,"_ts_metadata");function w(o,t){return function(e,r){t(e,r,o);}}n(w,"_ts_param");var d=class d{constructor(t){y(this,"client");let e={apiKey:t.apiKey,apiSecret:t.apiSecret};if(t.sandboxMode===true&&(e.config={version:"v3.1",host:"api.mailjet.com",output:"json"}),this.client=new nodeMailjet.Client(e),!this.client)throw new Error("Mailjet client is not initialized")}async findContact(t){let e={IsExcludedFromCampaigns:false},r=await this.client.get("contact",{version:"v3"}).id(t.toString()).request({},e);if(r.response.status!==200||r.body.Count===0)throw new Error(`Contact with id ${t} not found`);return r.body.Data[0]}async addContact(t){let e=await this.client.post("contact",{version:"v3"}).request(t);if(e.response.status!==201||e.body.Count===0)throw new Error("Contact not created");return e.body.Data[0]}async subscribeContactToList(t,e){let r=await this.client.post("contact",{version:"v3"}).id(t.toString()).action("managecontactslists").request({ContactsLists:[{Action:"addforce",ListID:e}]});if(r.response.status!==201||r.body.Count===0)throw new Error("Contact not subscribed");return r.body.Data[0]}async unsubscribeContactFromList(t,e){let r=await this.client.post("contact",{version:"v3"}).id(t.toString()).action("managecontactslists").request({ContactsLists:[{Action:"unsub",ListID:e}]});if(r.response.status!==201||r.body.Count===0)throw new Error("Contact not unsubscribed");return r.body.Data[0]}async sendEmail(t){let e=await this.client.post("send",{version:"v3.1"}).request(t);if(e.response.status!==common.HttpStatus.OK||e.body.Messages.length===0||e.body.Messages[0].Status!=="success")throw new Error(`Email messages not sent: ${JSON.stringify(e.body.Messages?.[0]||e.body)}`);return e.body.Messages}};n(d,"MailjetService");exports.MailjetService=d;exports.MailjetService=h([common.Injectable(),w(0,common.Inject(u)),O("design:type",Function),O("design:paramtypes",[typeof MailjetModuleOptions>"u"?Object:MailjetModuleOptions])],exports.MailjetService);function j(o,t,e,r){var i=arguments.length,s=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(c=o[a])&&(s=(i<3?c(s):i>3?c(t,e,s):c(t,e))||s);return i>3&&s&&Object.defineProperty(t,e,s),s}n(j,"_ts_decorate");var p=class p{static forRoot(t){return {module:p,providers:b(t)}}static forRootAsync(t){let e=[...this.createAsyncProviders(t)];return {module:p,imports:t.imports||[],providers:e}}static createAsyncProviders(t){return t.useExisting||t.useFactory?[this.createAsyncOptionsProviders(t)]:[this.createAsyncOptionsProviders(t),{provide:t.useClass,useClass:t.useClass}]}static createAsyncOptionsProviders(t){return t.useFactory?{provide:u,useFactory:t.useFactory,inject:t.inject||[]}:{provide:u,useFactory:n(async e=>await e.createMailjetOptions(),"useFactory"),inject:[t.useExisting||t.useClass]}}};n(p,"MailjetModule");exports.MailjetModule=p;exports.MailjetModule=j([common.Module({imports:[axios.HttpModule],providers:[exports.MailjetService],exports:[exports.MailjetService]})],exports.MailjetModule);exports.createMailjetProviders=b;//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map