Replaced all EnvelopeGenerator.GeneratorAPI namespaces with EnvelopeGenerator.API across controllers, models, extensions, middleware, and annotation-related files. Updated using/import statements and namespace declarations accordingly. Added wwwroot folder to project file. Minor code adjustments made for consistency. This unifies API naming for improved clarity and maintainability.
116 lines
4.4 KiB
C#
116 lines
4.4 KiB
C#
using AutoMapper;
|
|
using EnvelopeGenerator.Application.EmailTemplates;
|
|
using EnvelopeGenerator.Application.EmailTemplates.Commands.Update;
|
|
using EnvelopeGenerator.Application.EmailTemplates.Commands.Reset;
|
|
using EnvelopeGenerator.Application.EmailTemplates.Queries.Read;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using MediatR;
|
|
using System.Threading.Tasks;
|
|
using EnvelopeGenerator.Application.Common.Dto;
|
|
using DigitalData.Core.Abstraction.Application.Repository;
|
|
using EnvelopeGenerator.Domain.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace EnvelopeGenerator.API.Controllers;
|
|
|
|
/// <summary>
|
|
/// Controller for managing temp templates.
|
|
/// Steuerung zur Verwaltung von E-Mail-Vorlagen.
|
|
/// </summary>
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
[Authorize]
|
|
public class EmailTemplateController : ControllerBase
|
|
{
|
|
private readonly IMapper _mapper;
|
|
|
|
private readonly IRepository<EmailTemplate> _repository;
|
|
|
|
private readonly IMediator _mediator;
|
|
|
|
/// <summary>
|
|
/// Initialisiert eine neue Instanz der <see cref="EmailTemplateController"/>-Klasse.
|
|
/// </summary>
|
|
/// <param name="mapper">
|
|
/// <param name="repository">
|
|
/// Die AutoMapper-Instanz, die zum Zuordnen von Objekten verwendet wird.
|
|
/// </param>
|
|
[Obsolete("Use MediatR")]
|
|
public EmailTemplateController(IMapper mapper, IRepository<EmailTemplate> repository, IMediator mediator)
|
|
{
|
|
_mapper = mapper;
|
|
_repository = repository;
|
|
_mediator = mediator;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Ruft E-Mail-Vorlagen basierend auf der angegebenen Abfrage ab.
|
|
/// Gibt alles zurück, wenn keine Id- oder Typ-Informationen eingegeben wurden.
|
|
/// </summary>
|
|
/// <param name="emailTemplate">Die Abfrageparameter zum Abrufen von E-Mail-Vorlagen.</param>
|
|
/// <returns>Gibt HTTP-Antwort zurück</returns>
|
|
/// <remarks>
|
|
/// Sample request:
|
|
/// GET /api/EmailTemplate?emailTemplateId=123
|
|
/// </remarks>
|
|
/// <response code="200">Wenn die E-Mail-Vorlagen erfolgreich abgerufen werden.</response>
|
|
/// <response code="400">Wenn die Abfrageparameter ungültig sind.</response>
|
|
/// <response code="401">Wenn der Benutzer nicht authentifiziert ist.</response>
|
|
/// <response code="404">Wenn die gesuchte Abfrage nicht gefunden wird.</response>
|
|
[HttpGet]
|
|
public async Task<IActionResult> Get([FromQuery] ReadEmailTemplateQuery? emailTemplate = null)
|
|
{
|
|
if (emailTemplate is null || (emailTemplate.Id is null && emailTemplate.Type is null))
|
|
{
|
|
var temps = await _repository.Query.ToListAsync();
|
|
return Ok(_mapper.Map<IEnumerable<EmailTemplateDto>>(temps));
|
|
}
|
|
else
|
|
{
|
|
var temp = await _mediator.Send(emailTemplate);
|
|
return temp is null ? NotFound() : Ok(temp);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Updates an temp template or resets it if no update command is provided.
|
|
/// Aktualisiert eine E-Mail-Vorlage oder setzt sie zurück, wenn kein Aktualisierungsbefehl angegeben ist.
|
|
/// </summary>
|
|
/// <param name="temp">Die E-Mail-Vorlagenabfrage.</param>
|
|
/// <param name="update">Der Aktualisierungsbefehl für die E-Mail-Vorlage.
|
|
/// Wird auf Standardwert aktualisiert, wenn die Anfrage ohne http-Body gesendet wird.
|
|
/// </param>
|
|
/// <returns>Gibt HTTP-Antwort zurück</returns>
|
|
/// <remarks>
|
|
/// Sample request:
|
|
/// PUT /api/EmailTemplate
|
|
/// {
|
|
/// "emailTemplateId": 123,
|
|
/// "newContent": "Updated content"
|
|
/// }
|
|
/// </remarks>
|
|
/// <response code="200">Wenn die E-Mail-Vorlage erfolgreich aktualisiert oder zurückgesetzt wird.</response>
|
|
/// <response code="400">Wenn die Abfrage ohne einen String gesendet wird.</response>
|
|
/// <response code="401">Wenn der Benutzer nicht authentifiziert ist.</response>
|
|
/// <response code="404">Wenn die gesuchte Abfrage nicht gefunden wird.</response>
|
|
[HttpPut]
|
|
public async Task<IActionResult> Update([FromQuery] EmailTemplateQuery? temp = null, [FromBody] UpdateEmailTemplateCommand? update = null)
|
|
{
|
|
if (update is null)
|
|
{
|
|
await _mediator.Send(new ResetEmailTemplateCommand(temp));
|
|
return Ok();
|
|
}
|
|
else if (temp is null)
|
|
{
|
|
return BadRequest("No both id and type");
|
|
}
|
|
else
|
|
{
|
|
update.EmailTemplateQuery = temp;
|
|
await _mediator.Send(update);
|
|
return Ok();
|
|
}
|
|
}
|
|
} |