mail.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. const _ = require('lodash')
  2. const graphHelper = require('../../helpers/graph')
  3. /* global WIKI */
  4. module.exports = {
  5. Query: {
  6. async mail() { return {} }
  7. },
  8. Mutation: {
  9. async mail() { return {} }
  10. },
  11. MailQuery: {
  12. async config(obj, args, context, info) {
  13. return WIKI.config.mail
  14. }
  15. },
  16. MailMutation: {
  17. async sendTest(obj, args, context) {
  18. try {
  19. if (_.isEmpty(args.recipientEmail) || args.recipientEmail.length < 6) {
  20. throw new WIKI.Error.MailInvalidRecipient()
  21. }
  22. await WIKI.mail.send({
  23. template: 'test',
  24. to: args.recipientEmail,
  25. subject: 'A test email from your wiki',
  26. text: 'This is a test email sent from your wiki.',
  27. data: {
  28. preheadertext: 'This is a test email sent from your wiki.'
  29. }
  30. })
  31. return {
  32. responseResult: graphHelper.generateSuccess('Test email sent successfully.')
  33. }
  34. } catch (err) {
  35. return graphHelper.generateError(err)
  36. }
  37. },
  38. async updateConfig(obj, args, context) {
  39. try {
  40. WIKI.config.mail = {
  41. senderName: args.senderName,
  42. senderEmail: args.senderEmail,
  43. host: args.host,
  44. port: args.port,
  45. secure: args.secure,
  46. user: args.user,
  47. pass: args.pass,
  48. useDKIM: args.useDKIM,
  49. dkimDomainName: args.dkimDomainName,
  50. dkimKeySelector: args.dkimKeySelector,
  51. dkimPrivateKey: args.dkimPrivateKey
  52. }
  53. await WIKI.configSvc.saveToDb(['mail'])
  54. WIKI.mail.init()
  55. return {
  56. responseResult: graphHelper.generateSuccess('Mail configuration updated successfully.')
  57. }
  58. } catch (err) {
  59. return graphHelper.generateError(err)
  60. }
  61. }
  62. }
  63. }