feat(EnvelopeMailService): Arrangiert den Mailservice für read-only Umschläge zum Versenden als E-Mail
This commit is contained in:
@@ -5,6 +5,7 @@ using EnvelopeGenerator.Extensions;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||
|
||||
namespace EnvelopeGenerator.Web.Controllers
|
||||
{
|
||||
@@ -16,10 +17,13 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
|
||||
private readonly IEnvelopeReceiverReadOnlyService _erroService;
|
||||
|
||||
public ReadOnlyController(ILogger<ReadOnlyController> logger, IEnvelopeReceiverReadOnlyService erroService)
|
||||
private readonly IEnvelopeMailService _mailService;
|
||||
|
||||
public ReadOnlyController(ILogger<ReadOnlyController> logger, IEnvelopeReceiverReadOnlyService erroService, IEnvelopeMailService mailService)
|
||||
{
|
||||
_logger = logger;
|
||||
_erroService = erroService;
|
||||
_mailService = mailService;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
@@ -39,22 +43,40 @@ namespace EnvelopeGenerator.Web.Controllers
|
||||
if (authReceiverMail is null)
|
||||
{
|
||||
_logger.LogError("Email clam is not found in envelope-receiver-read-only creation process. Create DTO is:\n {dto}", JsonConvert.SerializeObject(createDto));
|
||||
|
||||
return Unauthorized();
|
||||
}
|
||||
|
||||
createDto.AddedWho = authReceiverMail;
|
||||
|
||||
return await _erroService.CreateAsync(createDto: createDto).ThenAsync(
|
||||
Success: id => Ok(id),
|
||||
Fail: IActionResult (msg, ntc) =>
|
||||
{
|
||||
return StatusCode(StatusCodes.Status500InternalServerError);
|
||||
});
|
||||
// create entity
|
||||
var creation_res = await _erroService.CreateAsync(createDto: createDto);
|
||||
|
||||
if (creation_res.IsFailed)
|
||||
{
|
||||
_logger.LogNotice(creation_res);
|
||||
return StatusCode(StatusCodes.Status500InternalServerError);
|
||||
}
|
||||
|
||||
//read new entity
|
||||
var read_res = await _erroService.ReadByIdAsync(creation_res.Data);
|
||||
if (read_res.IsFailed)
|
||||
{
|
||||
_logger.LogNotice(creation_res);
|
||||
return StatusCode(StatusCodes.Status500InternalServerError);
|
||||
}
|
||||
|
||||
var new_erro = read_res.Data;
|
||||
|
||||
//send email two receiver
|
||||
return await _mailService.SendAsync(new_erro).ThenAsync(Success: res => Ok(), Fail: IActionResult (msg, ntc) =>
|
||||
{
|
||||
_logger.LogNotice(ntc);
|
||||
return StatusCode(StatusCodes.Status500InternalServerError);
|
||||
});
|
||||
}
|
||||
|
||||
[HttpGet("key/{readOnlyId}")]
|
||||
public IActionResult CreateLink(long readOnlyId) => Ok(
|
||||
Request.Headers["Origin"].ToString() + "/EnvelopeKey/" + readOnlyId.EncodeEnvelopeReceiverId());
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user