fix(core): update
This commit is contained in:
		| @@ -5,12 +5,13 @@ import * as smartmail from '@pushrocks/smartmail'; | ||||
| const testQenv = new Qenv('./', './.nogit'); | ||||
|  | ||||
| import * as mailgun from '../ts/index'; | ||||
| import { IMailgunMessage } from '../ts/index'; | ||||
|  | ||||
|  | ||||
| let testMailgunAccount: mailgun.MailgunAccount; | ||||
| let testSmartmail: smartmail.Smartmail; | ||||
| let testSmartmail: smartmail.Smartmail<IMailgunMessage>; | ||||
|  | ||||
| tap.test('first test', async () => { | ||||
| tap.test('should create a mailgun account', async () => { | ||||
|   testMailgunAccount = new mailgun.MailgunAccount(testQenv.getEnvVarOnDemand('MAILGUN_API_TOKEN')); | ||||
|   expect(testMailgunAccount).to.be.instanceOf(mailgun.MailgunAccount); | ||||
| }); | ||||
| @@ -30,9 +31,11 @@ tap.test('should send a smartmail', async () => { | ||||
|  | ||||
| tap.test('should retrieve a mail using a retrieval url', async () => { | ||||
|   const result = await testMailgunAccount.retrieveSmartMailFromMessageUrl('https://sw.api.mailgun.net/v3/domains/mail.lossless.one/messages/AgMFnnnAKC8xp_dDa79LyoxhloxtaVmnRA=='); | ||||
|   if (result) { | ||||
|     result.options.subject = 'hi there. This is a testmail with attachment'; | ||||
|     result.options.from = 'noreply@mail.lossless.com'; | ||||
|     testMailgunAccount.sendSmartMail(result, 'sandbox@mail.git.zone'); | ||||
|   } | ||||
| }); | ||||
|  | ||||
| tap.start(); | ||||
|   | ||||
| @@ -51,7 +51,7 @@ export class MailgunAccount { | ||||
|   /** | ||||
|    * sends a SmartMail | ||||
|    */ | ||||
|   public async sendSmartMail(smartmailArg: plugins.smartmail.Smartmail, toArg: string, dataArg = {}) { | ||||
|   public async sendSmartMail(smartmailArg: plugins.smartmail.Smartmail<interfaces.IMailgunMessage>, toArg: string, dataArg = {}) { | ||||
|     const domain = smartmailArg.options.from.split('@')[1]; | ||||
|     const formFields: plugins.smartrequest.IFormField[] = [ | ||||
|       { | ||||
| @@ -98,6 +98,10 @@ export class MailgunAccount { | ||||
|  | ||||
|   public async retrieveSmartMailFromMessageUrl(messageUrlArg: string) { | ||||
|     const response = await this.getRequest(messageUrlArg); | ||||
|     if (response.statusCode === 404) { | ||||
|       console.log(response.body.message); | ||||
|       return null; | ||||
|     } | ||||
|     const responseBody: interfaces.IMailgunMessage = response.body; | ||||
|     const smartmail = new plugins.smartmail.Smartmail<interfaces.IMailgunMessage>({ | ||||
|       from: responseBody.From, | ||||
| @@ -106,6 +110,7 @@ export class MailgunAccount { | ||||
|     }); | ||||
|  | ||||
|     // lets care about attachments | ||||
|     if (responseBody.attachments && responseBody.attachments instanceof Array) { | ||||
|       for (const attachmentInfo of responseBody.attachments) { | ||||
|         const attachmentName = attachmentInfo.name; | ||||
|         const attachmentContents = await this.getRequest(attachmentInfo.url, true); | ||||
| @@ -115,6 +120,7 @@ export class MailgunAccount { | ||||
|           contentBuffer: attachmentContents.body | ||||
|         })); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     return smartmail; | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user