Update spam circle cache after updating circle status.

This commit is contained in:
2025-09-11 00:26:11 -04:00
parent 3c0a39b324
commit 39274165cb
10 changed files with 70 additions and 37 deletions

View File

@@ -1,11 +1,20 @@
using JSMR.Application.Circles.Ports;
using JSMR.Application.Common.Caching;
namespace JSMR.Application.Circles.Commands.UpdateCircleStatus;
public class UpdateCircleStatusHandler(ICircleWriter writer)
public class UpdateCircleStatusHandler(ICircleWriter writer, ISpamCircleCache spamCircleCache)
{
public Task<UpdateCircleStatusResponse> HandleAsync(UpdateCircleStatusRequest request, CancellationToken cancellationToken = default)
public async Task<UpdateCircleStatusResponse> HandleAsync(UpdateCircleStatusRequest request, CancellationToken cancellationToken = default)
{
return writer.UpdateStatusAsync(request, cancellationToken);
UpdateCircleStatusResponse response = await writer.UpdateStatusAsync(request, cancellationToken);
bool wasChangedToSpam = response.OldStatus is not Contracts.CircleStatus.Spam && response.NewStatus is Contracts.CircleStatus.Spam;
bool wasChangedFromSpam = response.OldStatus is Contracts.CircleStatus.Spam && response.NewStatus is not Contracts.CircleStatus.Spam;
if (wasChangedToSpam || wasChangedFromSpam)
await spamCircleCache.RefreshAsync(cancellationToken);
return response;
}
}