index.js 846 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. 'use strict';
  2. const coreClass = require("../../core");
  3. const config = require('config');
  4. let mailgun = null;
  5. module.exports = class extends coreClass {
  6. initialize() {
  7. return new Promise((resolve, reject) => {
  8. this.schemas = {
  9. verifyEmail: require('./schemas/verifyEmail'),
  10. resetPasswordRequest: require('./schemas/resetPasswordRequest'),
  11. passwordRequest: require('./schemas/passwordRequest')
  12. };
  13. this.enabled = config.get('apis.mailgun.enabled');
  14. if (this.enabled)
  15. mailgun = require('mailgun-js')({
  16. apiKey: config.get("apis.mailgun.key"),
  17. domain: config.get("apis.mailgun.domain")
  18. });
  19. resolve();
  20. });
  21. }
  22. async sendMail(data, cb) {
  23. try { await this._validateHook(); } catch { return; }
  24. if (!cb) cb = ()=>{};
  25. if (this.enabled) mailgun.messages().send(data, cb);
  26. else cb();
  27. }
  28. }