Files
speckle-server/packages/server/modules/emails/rest/index.ts
T
Kristaps Fabians Geikins b02a07e2b6 feat: Frontend 2.0 MVP
2023-05-08 10:47:01 +03:00

27 lines
971 B
TypeScript

import { Optional } from '@speckle/shared'
import { EmailVerificationFinalizationError } from '@/modules/emails/errors'
import { finalizeEmailVerification } from '@/modules/emails/services/verification/finalize'
import type { Express } from 'express'
import { getFrontendOrigin } from '@/modules/shared/helpers/envHelper'
export = (app: Express) => {
app.get('/auth/verifyemail', async (req, res) => {
try {
await finalizeEmailVerification(req.query.t as Optional<string>)
return res.redirect(
new URL('/?emailverifiedstatus=true', getFrontendOrigin()).toString()
)
} catch (error) {
const msg =
error instanceof EmailVerificationFinalizationError
? error.message
: 'Email verification unexpectedly failed'
req.log.info({ err: error }, 'Email verification failed.')
return res.redirect(
new URL(`/?emailverifiederror=${msg}`, getFrontendOrigin()).toString()
)
}
})
}