chore: init project
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user