Skip to content
Snippets Groups Projects
notifications.js 2.41 KiB
Newer Older
const config = require('config')

const unsubscribeSlug = config.get('unsubscribe.url')
const { staffEmail, name: journalName } = config.get('journal')
const Email = require('@pubsweet/component-email-templating')
const { services } = require('pubsweet-component-helper-service')
  sendNewUserEmail: ({ user, baseUrl, role }) => {
    const resetPath = config.get('invite-reset-password.url')

    const emailType =
      role === 'Handling Editor' ? 'he-added-by-admin' : 'user-added-by-admin'

    const { paragraph, ...bodyProps } = getEmailCopy({
      role,
      emailType,
    })

    const email = new Email({
      type: 'user',
      fromEmail: `${journalName} <${staffEmail}>`,
        name: `${user.lastName}`,
        ctaLink: services.createUrl(baseUrl, resetPath, {
          email: user.email,
          token: user.accessTokens.passwordReset,
          firstName: user.firstName,
          lastName: user.lastName,
          affiliation: user.affiliation,
          title: user.title,
        paragraph,
        signatureName: 'Hindawi',
        unsubscribeLink: services.createUrl(baseUrl, unsubscribeSlug, {
          id: user.id,
          token: user.accessTokens.unsubscribe,
        }),
      },
      bodyProps,
    })

  },
  sendSignupEmail: ({ user, baseUrl }) => {
    const confirmSignUp = config.get('confirm-signup.url')

    const { paragraph, ...bodyProps } = getEmailCopy({
      emailType: 'user-signup',
    })

    const email = new Email({
      type: 'user',
      fromEmail: `${journalName} <${staffEmail}>`,
      toUser: {
        email: user.email,
        name: `${user.lastName}`,
      },
      content: {
        subject: 'Confirm your email address',
        ctaLink: services.createUrl(baseUrl, confirmSignUp, {
          userId: user.id,
          confirmationToken: user.accessTokens.confirmation,
        }),
        ctaText: 'CONFIRM ACCOUNT',
        paragraph,
        signatureName: 'Hindawi',
        unsubscribeLink: services.createUrl(baseUrl, unsubscribeSlug, {
          id: user.id,
          token: user.accessTokens.unsubscribe,