From 7327e7df6c98cb4d2a21bae8b6deecf3b10dd428 Mon Sep 17 00:00:00 2001 From: Steve Date: Fri, 16 Apr 2021 15:03:30 +0200 Subject: [PATCH 1/2] Sandbox for sparkpost & mailgun --- lib/transporters/mailgun/mailgun.class.js | 2 + lib/types/decorators/debug.decorator.js | 31 +++++++++---- src/transporters/mailgun/mailgun.class.ts | 2 + src/types/decorators/debug.decorator.ts | 56 +++++++++++++++++------ tsconfig.json | 2 +- 5 files changed, 69 insertions(+), 24 deletions(-) diff --git a/lib/transporters/mailgun/mailgun.class.js b/lib/transporters/mailgun/mailgun.class.js index c0a3250..29f2403 100644 --- a/lib/transporters/mailgun/mailgun.class.js +++ b/lib/transporters/mailgun/mailgun.class.js @@ -14,6 +14,8 @@ const compiler_enum_1 = require("./../../types/enums/compiler.enum"); * @see https://nodemailer.com/smtp/ * @see https://www.npmjs.com/package/nodemailer-mailgun-transport * @see https://documentation.mailgun.com/en/latest/index.html + * @see https://documentation.mailgun.com/en/latest/user_manual.html#introduction + * */ class MailgunTransporter extends transporter_class_1.Transporter { /** diff --git a/lib/types/decorators/debug.decorator.js b/lib/types/decorators/debug.decorator.js index f77737c..a7cb867 100644 --- a/lib/types/decorators/debug.decorator.js +++ b/lib/types/decorators/debug.decorator.js @@ -16,6 +16,9 @@ const Debug = (transporter) => { if (output) { if (container_service_1.Container.configuration?.sandbox?.active) { switch (transporter) { + case transporter_enum_1.TRANSPORTER.mailgun: + Object.assign(output, { testmode: true }); + break; case transporter_enum_1.TRANSPORTER.mailjet: Object.assign(output, { SandboxMode: true, @@ -27,15 +30,6 @@ const Debug = (transporter) => { }); output.Messages[0].From = { Email: container_service_1.Container.configuration.sandbox.from.email, Name: container_service_1.Container.configuration.sandbox.from.name }; break; - case transporter_enum_1.TRANSPORTER.sendgrid: - Object.assign(output, { - mail_settings: { - sandbox_mode: { - enable: true - } - } - }); - break; case transporter_enum_1.TRANSPORTER.postmark: output.from = `${container_service_1.Container.configuration.sandbox.from.name} ${container_service_1.Container.configuration.sandbox.from.email}`; output.to = [].concat(output.to).map((recipient) => { @@ -52,6 +46,25 @@ const Debug = (transporter) => { }); } break; + case transporter_enum_1.TRANSPORTER.sendgrid: + Object.assign(output, { + mail_settings: { + sandbox_mode: { + enable: true + } + } + }); + break; + case transporter_enum_1.TRANSPORTER.sparkpost: + Object.assign(output, { + options: { + sandbox: true + }, + content: { + from: container_service_1.Container.configuration.sandbox.to.email + } + }); + break; } } return output; diff --git a/src/transporters/mailgun/mailgun.class.ts b/src/transporters/mailgun/mailgun.class.ts index 3705ef1..25c47b6 100644 --- a/src/transporters/mailgun/mailgun.class.ts +++ b/src/transporters/mailgun/mailgun.class.ts @@ -21,6 +21,8 @@ import { COMPILER } from './../../types/enums/compiler.enum'; * @see https://nodemailer.com/smtp/ * @see https://www.npmjs.com/package/nodemailer-mailgun-transport * @see https://documentation.mailgun.com/en/latest/index.html + * @see https://documentation.mailgun.com/en/latest/user_manual.html#introduction + * */ export class MailgunTransporter extends Transporter implements ITransporter { diff --git a/src/types/decorators/debug.decorator.ts b/src/types/decorators/debug.decorator.ts index e97b840..01436eb 100644 --- a/src/types/decorators/debug.decorator.ts +++ b/src/types/decorators/debug.decorator.ts @@ -10,10 +10,31 @@ const Debug = ( transporter: string ): any => { return ( target: Recordany>, key: string ) => { const method = target[key] as ({...args}: any) => any; target[key] = function (...args: any[]): any { - const output = method.apply(this, args) as { Message?: {From: { Email: string, Name: string}}, Messages?: Array<{From: { Email: string, Name: string}}>, from?: string, to?: Array, cc?: Array, bcc?: Array, html?: string, text?: string }; + const output = method.apply(this, args) as { + Message?: { + From: { + Email: string, + Name: string + } + }, + Messages?: Array<{From: { Email: string, Name: string}}>, + from?: string, + to?: Array, + cc?: Array, + bcc?: Array, + html?: string, + text?: string, + options?: { sandbox: boolean }, + content?: { + from?: string + } + }; if (output) { if (Container.configuration?.sandbox?.active) { switch(transporter) { + case TRANSPORTER.mailgun: + Object.assign(output, { testmode: true }) + break; case TRANSPORTER.mailjet: Object.assign(output, { SandboxMode: true, @@ -25,15 +46,6 @@ const Debug = ( transporter: string ): any => { }); output.Messages[0].From = { Email: Container.configuration.sandbox.from.email, Name: Container.configuration.sandbox.from.name }; break; - case TRANSPORTER.sendgrid: - Object.assign(output, { - mail_settings: { - sandbox_mode: { - enable: true - } - } - }); - break; case TRANSPORTER.postmark: output.from = `${Container.configuration.sandbox.from.name} ${Container.configuration.sandbox.from.email}`; output.to = [].concat(output.to).map( (recipient) => { @@ -50,6 +62,25 @@ const Debug = ( transporter: string ): any => { }); } break; + case TRANSPORTER.sendgrid: + Object.assign(output, { + mail_settings: { + sandbox_mode: { + enable: true + } + } + }); + break; + case TRANSPORTER.sparkpost: + Object.assign(output, { + options: { + sandbox: true + }, + content: { + from: Container.configuration.sandbox.to.email + } + }); + break; } } return output; @@ -59,7 +90,4 @@ const Debug = ( transporter: string ): any => { } } -export { Debug } - - - +export { Debug } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index a6da53a..240448e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,4 +15,4 @@ "**/**/node_modules", "node_modules" ] -} \ No newline at end of file +} \ No newline at end of file From 046d1026cf072f5969381ed528111fba8b109f04 Mon Sep 17 00:00:00 2001 From: Steve Date: Fri, 16 Apr 2021 15:04:24 +0200 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.md | 9 ++++++++- package.json | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24804bb..a558e9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). -## [v1.0.6](https://github.com/konfer-be/cliam/compare/v1.0.5...v1.0.6) +## [v1.0.7](https://github.com/konfer-be/cliam/compare/v1.0.6...v1.0.7) ### Commits +- Sandbox for sparkpost & mailgun [`7327e7d`](https://github.com/konfer-be/cliam/commit/7327e7df6c98cb4d2a21bae8b6deecf3b10dd428) + +## [v1.0.6](https://github.com/konfer-be/cliam/compare/v1.0.5...v1.0.6) - 2021-04-16 + +### Commits + +- Update changelog [`8baef60`](https://github.com/konfer-be/cliam/commit/8baef60e65863c8475388bcbfd9fd76d4962ff84) - Fix declaration [`26424e4`](https://github.com/konfer-be/cliam/commit/26424e4f8688bc4dcfa86105be73c027152fb6f9) ## [v1.0.5](https://github.com/konfer-be/cliam/compare/v1.0.4...v1.0.5) - 2021-04-16 diff --git a/package.json b/package.json index 96019bf..1d03e55 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cliam", - "version": "1.0.6", + "version": "1.0.7", "engines": { "node": ">=14.16" },