diff --git a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs index e245608d..17a0940a 100644 --- a/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs +++ b/EnvelopeGenerator.Application/EnvelopeReceivers/Queries/ReadEnvelopeReceiverQuery.cs @@ -66,6 +66,22 @@ public static class Extensions var q = new ReadEnvelopeReceiverQuery() { Key = key }; return mediator.Send(q, cancel).Then(envRcvs => envRcvs.FirstOrDefault()); } + + /// + /// + /// + /// + /// + /// + /// + /// + public static Task ReadEnvelopeReceiverAsync(this IMediator mediator, string uuid, string signature, CancellationToken cancel = default) + { + var q = new ReadEnvelopeReceiverQuery(); + q.Envelope.Uuid = uuid; + q.Receiver.Signature = signature; + return mediator.Send(q, cancel).Then(envRcvs => envRcvs.FirstOrDefault()); + } } /// diff --git a/EnvelopeGenerator.Application/Model/EnvelopeQueryBase.cs b/EnvelopeGenerator.Application/Model/EnvelopeQueryBase.cs index 53ec08de..80cb577c 100644 --- a/EnvelopeGenerator.Application/Model/EnvelopeQueryBase.cs +++ b/EnvelopeGenerator.Application/Model/EnvelopeQueryBase.cs @@ -8,10 +8,10 @@ public record EnvelopeQueryBase /// /// Die eindeutige Kennung des Umschlags. /// - public virtual int? Id { get; init; } + public virtual int? Id { get; set; } /// /// Die universell eindeutige Kennung des Umschlags. /// - public virtual string? Uuid { get; init; } + public virtual string? Uuid { get; set; } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs index 1aaba955..058fb7da 100644 --- a/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs +++ b/EnvelopeGenerator.Web/Controllers/EnvelopeController.cs @@ -41,8 +41,8 @@ public class EnvelopeController : ControllerBase } [Authorize(Roles = ReceiverRole.FullyAuth)] - [HttpPost("{envelopeKey}")] - public async Task CreateOrUpdate([FromRoute] string envelopeKey, [FromBody] ExpandoObject annotations, CancellationToken cancel = default) + [HttpPost] + public async Task CreateOrUpdate([FromBody] ExpandoObject annotations, CancellationToken cancel = default) { // get claims var signature = User.GetAuthReceiverSignature(); @@ -58,11 +58,12 @@ public class EnvelopeController : ControllerBase if (await _mediator.IsSignedAsync(uuid, signature, cancel)) return Problem(statusCode: 403); - var notification = await _mediator.ReadEnvelopeReceiverAsync(envelopeKey, cancel) + var docSignedNotification = await _mediator + .ReadEnvelopeReceiverAsync(uuid, signature, cancel) .ToDocSignedNotification(annotations) ?? throw new NotFoundException("Envelope receiver is not found."); - await _mediator.Publish(notification, cancel); + await _mediator.Publish(docSignedNotification, cancel); return Ok(); } diff --git a/EnvelopeGenerator.Web/wwwroot/js/app.js b/EnvelopeGenerator.Web/wwwroot/js/app.js index dbb5dc7a..56d5403f 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/app.js +++ b/EnvelopeGenerator.Web/wwwroot/js/app.js @@ -272,7 +272,7 @@ class App { // Export annotation data and save to database try { - const res = await postEnvelope(this.envelopeKey, await iJSON); + const res = await postEnvelope(await iJSON); if (!res.ok) { if (res.status === 403) { diff --git a/EnvelopeGenerator.Web/wwwroot/js/network.js b/EnvelopeGenerator.Web/wwwroot/js/network.js index 317a9643..4baf0676 100644 --- a/EnvelopeGenerator.Web/wwwroot/js/network.js +++ b/EnvelopeGenerator.Web/wwwroot/js/network.js @@ -8,7 +8,7 @@ const csrfToken = { 'X-XSRF-TOKEN': document.getElementsByName('__RequestVerific * @param {any} envelopeKey * @param {any} annotations */ -function postEnvelope(envelopeKey, annotations) { +function postEnvelope(annotations) { const token = csrfToken const options = { credentials: 'include', @@ -20,7 +20,7 @@ function postEnvelope(envelopeKey, annotations) { body: JSON.stringify(annotations) } - return fetch(`/api/envelope/${envelopeKey}`, options) + return fetch(`/api/envelope`, options) } async function setLangAsync(language, flagCode) {