mirror of
https://git.v0l.io/Kieran/void.cat.git
synced 2025-08-08 17:52:00 +02:00
Co-authored-by: Kieran <kieran@harkin.me> Reviewed-on: https://git.v0l.io/Kieran/void.cat/pulls/65
40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using VoidCat.Database;
|
|
using VoidCat.Model;
|
|
|
|
namespace VoidCat.Services.Users;
|
|
|
|
/// <inheritdoc />
|
|
public class PostgresEmailVerification : BaseEmailVerification
|
|
{
|
|
private readonly VoidContext _db;
|
|
|
|
public PostgresEmailVerification(ILogger<BaseEmailVerification> logger, VoidSettings settings,
|
|
RazorPartialToStringRenderer renderer, VoidContext db) : base(logger, settings, renderer)
|
|
{
|
|
_db = db;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override async ValueTask SaveToken(EmailVerification code)
|
|
{
|
|
_db.EmailVerifications.Add(code);
|
|
await _db.SaveChangesAsync();
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override async ValueTask<EmailVerification?> GetToken(Guid user, Guid code)
|
|
{
|
|
return await _db.EmailVerifications
|
|
.AsNoTracking()
|
|
.SingleOrDefaultAsync(a => a.UserId == user && a.Code == code);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override async ValueTask DeleteToken(Guid user, Guid code)
|
|
{
|
|
await _db.EmailVerifications
|
|
.Where(a => a.UserId == user && a.Code == code)
|
|
.ExecuteDeleteAsync();
|
|
}
|
|
} |