mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
This commit takes all backend changes for signup and invite feature. I was working on these features and removed the generated mutations for type user along the way.
58 lines
1.8 KiB
JavaScript
58 lines
1.8 KiB
JavaScript
import CONFIG from '../../config'
|
|
import nodemailer from 'nodemailer'
|
|
import { resetPasswordMail, wrongAccountMail } from './templates/passwordReset'
|
|
import { signupTemplate } from './templates/signup'
|
|
|
|
const transporter = () => {
|
|
const configs = {
|
|
host: CONFIG.SMTP_HOST,
|
|
port: CONFIG.SMTP_PORT,
|
|
ignoreTLS: CONFIG.SMTP_IGNORE_TLS,
|
|
secure: false, // true for 465, false for other ports
|
|
}
|
|
const { SMTP_USERNAME: user, SMTP_PASSWORD: pass } = CONFIG
|
|
if (user && pass) {
|
|
configs.auth = { user, pass }
|
|
}
|
|
return nodemailer.createTransport(configs)
|
|
}
|
|
|
|
const returnResponse = async (resolve, root, args, context, resolveInfo) => {
|
|
const { response } = await resolve(root, args, context, resolveInfo)
|
|
delete response.nonce
|
|
return response
|
|
}
|
|
|
|
const sendSignupMail = async (resolve, root, args, context, resolveInfo) => {
|
|
const { email } = args
|
|
const { response, nonce } = await resolve(root, args, context, resolveInfo)
|
|
delete response.nonce
|
|
await transporter().sendMail(signupTemplate({ email, nonce }))
|
|
return response
|
|
}
|
|
|
|
export default function({ isEnabled }) {
|
|
if (!isEnabled)
|
|
return {
|
|
Mutation: {
|
|
requestPasswordReset: returnResponse,
|
|
Signup: returnResponse,
|
|
SignupByInvitation: returnResponse,
|
|
},
|
|
}
|
|
|
|
return {
|
|
Mutation: {
|
|
requestPasswordReset: async (resolve, root, args, context, resolveInfo) => {
|
|
const { email } = args
|
|
const { response, user, code, name } = await resolve(root, args, context, resolveInfo)
|
|
const mailTemplate = user ? resetPasswordMail : wrongAccountMail
|
|
await transporter().sendMail(mailTemplate({ email, code, name }))
|
|
return response
|
|
},
|
|
Signup: sendSignupMail,
|
|
SignupByInvitation: sendSignupMail,
|
|
},
|
|
}
|
|
}
|