Refactor app architecture and clean local artifacts

This commit is contained in:
AzuTear
2026-06-24 23:43:14 +02:00
parent 17134b3b82
commit fef1d36fe8
274 changed files with 37724 additions and 6065 deletions
@@ -0,0 +1,70 @@
using Backend.Data;
using Backend.Services;
using Microsoft.EntityFrameworkCore;
namespace Backend.Endpoints;
public static partial class AuthEndpoints
{
private static async Task<IResult> DeleteMyParticipationData(
HttpContext context,
AwardsDbContext db,
IUserSessionService userSessionService)
{
var session = await userSessionService.ResolveSessionAsync(context, context.RequestAborted);
if (session is null)
{
return Results.Unauthorized();
}
var twitchUserId = session.TwitchUserId;
await using var transaction = await db.Database.BeginTransactionAsync(context.RequestAborted);
var ballotIds = await db.VoteBallots
.Where(item => item.SubmittedByTwitchId == twitchUserId)
.Select(item => item.Id)
.ToArrayAsync(context.RequestAborted);
var deletedVoteEntries = ballotIds.Length == 0
? 0
: await db.VoteEntries
.Where(item => ballotIds.Contains(item.BallotId))
.ExecuteDeleteAsync(context.RequestAborted);
var deletedBallots = await db.VoteBallots
.Where(item => item.SubmittedByTwitchId == twitchUserId)
.ExecuteDeleteAsync(context.RequestAborted);
var deletedNominations = await db.Nominations
.Where(item => item.SubmittedByTwitchId == twitchUserId)
.ExecuteDeleteAsync(context.RequestAborted);
var deletedClips = await db.ClipSubmissions
.Where(item => item.SubmittedByTwitchId == twitchUserId)
.ExecuteDeleteAsync(context.RequestAborted);
var deletedRiskFlags = await db.RiskFlags
.Where(item => item.TwitchUserId == twitchUserId)
.ExecuteDeleteAsync(context.RequestAborted);
var disabledSessions = await db.UserSessions
.Where(item => item.TwitchUserId == twitchUserId)
.ExecuteUpdateAsync(
setters => setters.SetProperty(item => item.IsActive, false),
context.RequestAborted);
await transaction.CommitAsync(context.RequestAborted);
return Results.Ok(new
{
deleted = true,
twitchUserId,
deletedVoteEntries,
deletedBallots,
deletedNominations,
deletedClips,
deletedRiskFlags,
disabledSessions,
});
}
}