getVerificationEmail method
FutureOr<PassedHttpEntity>
getVerificationEmail(
- RequestHolder request,
- ResponseHolder response,
- Map<
String, dynamic> pathArgs, - String verifyEmailEndpoint,
override
Implementation
@override
FutureOr<PassedHttpEntity> getVerificationEmail(
RequestHolder request,
ResponseHolder response,
Map<String, dynamic> pathArgs,
String verifyEmailEndpoint,
) async {
return _wrapper(request, response, pathArgs, () async {
var body = await request.readAsJson();
var email = body[ModelFields.email];
if (email is! String) {
throw RequestBodyError('email can\'t be empty');
}
String token = await authService.createVerifyEmailToken(
email,
allowNewJwtAfter:
emailVerificationProvider.allowNewVerificationEmailAfter,
verifyLinkExpiresAfter:
emailVerificationProvider.verifyLinkExpiresAfter,
);
// JWT
// .verify(
// token, authService.authDbProvider.app.authSettings.jwtSecretKey)
// .payload;
// here i need to send that email to the user
EmailService emailService = EmailService(authService.authDbProvider.app);
Message message = getEmailVerificationMessage(
mailTo: email,
from: 'Dart Verse',
subject: 'Test Email Verification',
);
String verificationLink = (verifyEmailEndpoint.endsWith('/')
? verifyEmailEndpoint
: '$verifyEmailEndpoint/') +
token;
await emailService.sendFromTemplateFile(
message,
'D:/Study And Work/Work/projects/flutter/Dart Mastery/dart_verse/templates/verification.html',
{
'name': email,
'verify_link': verificationLink,
'sender_name': 'Dart Verse',
},
);
return SendResponse.sendDataToUser(
response,
'Email sent successfully',
dataFieldName: 'msg',
);
});
}