This commit is contained in:
2026-05-08 13:31:41 +03:00
parent 845f41255f
commit 86d4d2af06
8 changed files with 114 additions and 0 deletions
+15
View File
@@ -6,6 +6,7 @@ using Microsoft.AspNetCore.RateLimiting;
using Microsoft.Extensions.Options;
using Models.Settings;
using Models.Requests;
using Swashbuckle.AspNetCore.Annotations;
namespace Api.Controllers
{
@@ -42,6 +43,13 @@ namespace Api.Controllers
/// </returns>
[HttpPost]
[EnableRateLimiting("contact")]
[SwaggerOperation(Summary = "Send contact message", Description = "Validates captcha and sends a contact message using the configured email sender.")]
[SwaggerResponse(StatusCodes.Status200OK, "Contact message sent")]
[SwaggerResponse(StatusCodes.Status400BadRequest, "Invalid request or captcha verification failed")]
[SwaggerResponse(StatusCodes.Status500InternalServerError, "Contact message could not be sent due to server error")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<IActionResult> Send([FromBody] ContactRequest req, CancellationToken ct)
{
if (!ModelState.IsValid)
@@ -76,6 +84,13 @@ namespace Api.Controllers
/// </returns>
[HttpPost("subscribe")]
[EnableRateLimiting("contact")]
[SwaggerOperation(Summary = "Subscribe email", Description = "Validates captcha and subscribes an email address to the mailing list.")]
[SwaggerResponse(StatusCodes.Status200OK, "Subscription succeeded")]
[SwaggerResponse(StatusCodes.Status400BadRequest, "Invalid request or captcha verification failed")]
[SwaggerResponse(StatusCodes.Status500InternalServerError, "Subscription failed due to server error")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<IActionResult> Subscribe([FromBody] SubscribeRequest req, CancellationToken ct)
{
if (!ModelState.IsValid)