deletePasswordResetRequests method
Future<void>
deletePasswordResetRequests(
- Session session, {
- required Duration? olderThan,
- required UuidValue? emailAccountId,
- required Transaction transaction,
Deletes password reset requests older than olderThan.
If olderThan is null, this will remove all expired password reset
requests, as configured by the
EmailIdpConfig.passwordResetVerificationCodeLifetime.
If emailAccountId is provided, only requests for the given email account
will be deleted.
Implementation
Future<void> deletePasswordResetRequests(
final Session session, {
required Duration? olderThan,
required final UuidValue? emailAccountId,
required final Transaction transaction,
}) async {
olderThan ??= _config.passwordResetVerificationCodeLifetime;
final lastValidDateTime = clock.now().subtract(olderThan);
await EmailAccountPasswordResetRequest.db.deleteWhere(
session,
where: (final t) {
var expression = t.createdAt < lastValidDateTime;
if (emailAccountId != null) {
expression &= t.emailAccountId.equals(emailAccountId);
}
return expression;
},
transaction: transaction,
);
}