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