more flex and filters

This commit is contained in:
JiriUhlir
2026-07-14 06:21:37 +02:00
parent 1a898b95f9
commit d9e3c59d69
15 changed files with 488 additions and 32 deletions
+47
View File
@@ -0,0 +1,47 @@
using IdokladSdk.Models.Email;
using Microsoft.AspNetCore.Mvc;
using Idoklad.Services;
namespace Idoklad.Controllers;
/// <summary>
/// Sends document e-mails through iDoklad. The request body carries the settings: the document id
/// (<c>DocumentId</c>), recipients (<c>OtherRecipients</c>, <c>SendToPartner</c>, <c>SendToSelf</c>,
/// <c>SendToAccountant</c>), optional subject/body and report language. Requires iDoklad credentials
/// (headers or environment defaults).
/// </summary>
[ApiController]
[Route("mail")]
[Produces("application/json")]
[Tags("Mail")]
public sealed class MailController : ControllerBase
{
private readonly MailService _service;
public MailController(MailService service) => _service = service;
/// <summary>Send an issued invoice by e-mail.</summary>
[HttpPost("issued-invoices/send")]
public async Task<IActionResult> SendIssuedInvoice([FromBody] IssuedInvoiceEmailSettings settings, CancellationToken ct)
=> Ok(await _service.SendIssuedInvoiceAsync(settings, ct));
/// <summary>Send a proforma (advance) invoice by e-mail.</summary>
[HttpPost("proforma-invoices/send")]
public async Task<IActionResult> SendProformaInvoice([FromBody] ProformaInvoiceEmailSettings settings, CancellationToken ct)
=> Ok(await _service.SendProformaInvoiceAsync(settings, ct));
/// <summary>Send a credit note by e-mail.</summary>
[HttpPost("credit-notes/send")]
public async Task<IActionResult> SendCreditNote([FromBody] CreditNoteEmailSettings settings, CancellationToken ct)
=> Ok(await _service.SendCreditNoteAsync(settings, ct));
/// <summary>Send a received invoice by e-mail.</summary>
[HttpPost("received-invoices/send")]
public async Task<IActionResult> SendReceivedInvoice([FromBody] ReceivedInvoiceEmailSettings settings, CancellationToken ct)
=> Ok(await _service.SendReceivedInvoiceAsync(settings, ct));
/// <summary>Send payment reminders by e-mail.</summary>
[HttpPost("reminders/send")]
public async Task<IActionResult> SendReminders([FromBody] RemindersEmailSettings settings, CancellationToken ct)
=> Ok(await _service.SendRemindersAsync(settings, ct));
}