fix(EnvelopeController): remove envelopeKey route parameter

This commit is contained in:
tekh 2025-09-04 23:17:24 +02:00
parent 77070a8cfc
commit 1d605e9da3
5 changed files with 26 additions and 9 deletions

View File

@ -66,6 +66,22 @@ public static class Extensions
var q = new ReadEnvelopeReceiverQuery() { Key = key };
return mediator.Send(q, cancel).Then(envRcvs => envRcvs.FirstOrDefault());
}
/// <summary>
///
/// </summary>
/// <param name="mediator"></param>
/// <param name="uuid"></param>
/// <param name="signature"></param>
/// <param name="cancel"></param>
/// <returns></returns>
public static Task<EnvelopeReceiverDto?> 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());
}
}
/// <summary>

View File

@ -8,10 +8,10 @@ public record EnvelopeQueryBase
/// <summary>
/// Die eindeutige Kennung des Umschlags.
/// </summary>
public virtual int? Id { get; init; }
public virtual int? Id { get; set; }
/// <summary>
/// Die universell eindeutige Kennung des Umschlags.
/// </summary>
public virtual string? Uuid { get; init; }
public virtual string? Uuid { get; set; }
}

View File

@ -41,8 +41,8 @@ public class EnvelopeController : ControllerBase
}
[Authorize(Roles = ReceiverRole.FullyAuth)]
[HttpPost("{envelopeKey}")]
public async Task<IActionResult> CreateOrUpdate([FromRoute] string envelopeKey, [FromBody] ExpandoObject annotations, CancellationToken cancel = default)
[HttpPost]
public async Task<IActionResult> 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();
}

View File

@ -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) {

View File

@ -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) {