chore: init project

This commit is contained in:
cesnimda
2026-06-30 15:53:32 +02:00
commit f43ef5f945
94 changed files with 4405 additions and 0 deletions
@@ -0,0 +1,31 @@
using InboxIntel.Application.Abstractions;
using InboxIntel.Application.DTOs;
using Microsoft.AspNetCore.Mvc;
namespace InboxIntel.Api.Controllers;
public class UnsubscribeController : ApiControllerBase
{
private readonly IUnsubscribeService _unsub;
public UnsubscribeController(IUnsubscribeService unsub) => _unsub = unsub;
[HttpPost("detect")]
public async Task<IActionResult> Detect(CancellationToken ct)
{
await _unsub.DetectAsync(UserId, ct);
return NoContent();
}
/// <summary>Senders that are safe to unsubscribe from, ranked by volume.</summary>
[HttpGet("safe-list")]
public async Task<IActionResult> SafeList(CancellationToken ct)
=> Ok(await _unsub.GetSafeToUnsubscribeAsync(UserId, ct));
/// <summary>Process the confirmed unsubscribe queue. Requires Confirmed = true.</summary>
[HttpPost("process")]
public async Task<IActionResult> Process([FromBody] UnsubscribeRequestDto request, CancellationToken ct)
{
var result = await _unsub.ProcessQueueAsync(UserId, request, ct);
return result.Succeeded ? Ok(result.Value) : BadRequest(new { error = result.Error });
}
}