{{={= =}=}} import { Router } from "express"; import { ProviderConfig } from "wasp/auth/providers/types"; import type { EmailFromField } from "wasp/server/email/core/types"; import { getLoginRoute } from "../email/login.js"; import { getSignupRoute } from "../email/signup.js"; import { getRequestPasswordResetRoute } from "../email/requestPasswordReset.js"; import { resetPassword } from "../email/resetPassword.js"; import { verifyEmail } from "../email/verifyEmail.js"; import { GetVerificationEmailContentFn, GetPasswordResetEmailContentFn } from "wasp/server/auth/email"; import { defineHandler } from "wasp/server/utils"; import { env } from "wasp/server"; {=# userSignupFields.isDefined =} {=& userSignupFields.importStatement =} const _waspUserSignupFields = {= userSignupFields.importIdentifier =} {=/ userSignupFields.isDefined =} {=^ userSignupFields.isDefined =} const _waspUserSignupFields = undefined {=/ userSignupFields.isDefined =} {=# getVerificationEmailContent.isDefined =} {=& getVerificationEmailContent.importStatement =} const _waspGetVerificationEmailContent: GetVerificationEmailContentFn = {= getVerificationEmailContent.importIdentifier =}; {=/ getVerificationEmailContent.isDefined =} {=# getPasswordResetEmailContent.isDefined =} {=& getPasswordResetEmailContent.importStatement =} const _waspGetPasswordResetEmailContent: GetPasswordResetEmailContentFn = {= getPasswordResetEmailContent.importIdentifier =}; {=/ getPasswordResetEmailContent.isDefined =} {=^ getVerificationEmailContent.isDefined =} const _waspGetVerificationEmailContent: GetVerificationEmailContentFn = ({ verificationLink }) => ({ subject: 'Verify your email', text: `Click the link below to verify your email: ${verificationLink}`, html: `

Click the link below to verify your email

Verify email `, }); {=/ getVerificationEmailContent.isDefined =} {=^ getPasswordResetEmailContent.isDefined =} const _waspGetPasswordResetEmailContent: GetPasswordResetEmailContentFn = ({ passwordResetLink }) => ({ subject: 'Reset your password', text: `Click the link below to reset your password: ${passwordResetLink}`, html: `

Click the link below to reset your password

Reset password `, }); {=/ getPasswordResetEmailContent.isDefined =} const fromField: EmailFromField = { name: '{= fromField.name =}', email: '{= fromField.email =}', }; const config: ProviderConfig = { id: "{= providerId =}", displayName: "{= displayName =}", createRouter() { const router = Router(); const loginRoute = defineHandler(getLoginRoute()); router.post('/login', loginRoute); const signupRoute = defineHandler(getSignupRoute({ userSignupFields: _waspUserSignupFields, fromField, clientRoute: '{= emailVerificationClientRoute =}', getVerificationEmailContent: _waspGetVerificationEmailContent, {=# isDevelopment =} isEmailAutoVerified: env.SKIP_EMAIL_VERIFICATION_IN_DEV, {=/ isDevelopment =} {=^ isDevelopment =} isEmailAutoVerified: false, {=/ isDevelopment =} })); router.post('/signup', signupRoute); const requestPasswordResetRoute = defineHandler(getRequestPasswordResetRoute({ fromField, clientRoute: '{= passwordResetClientRoute =}', getPasswordResetEmailContent: _waspGetPasswordResetEmailContent, })); router.post('/request-password-reset', requestPasswordResetRoute); router.post('/reset-password', defineHandler(resetPassword)); router.post('/verify-email', defineHandler(verifyEmail)); return router; }, } export default config;