feat(client): Implementierung von GetDocumentRequestHandler mit IEConnectClient-Integration

This commit is contained in:
tekh 2025-08-15 11:19:50 +02:00
parent 65d59c6c67
commit f994781713
2 changed files with 17 additions and 5 deletions

View File

@ -4,7 +4,7 @@ namespace Leanetec.EConnect.Client.Dto;
public record HttpRequestBase
{
public int? ApiVersion { get; set; }
public int ApiVersion { get; set; } = 1;
}
public record HttpRequest : HttpRequestBase, IRequest

View File

@ -1,17 +1,29 @@
using Leanetec.EConnect.Client.Dto;
using Leanetec.EConnect.Client.Interface;
using Leanetec.EConnect.Domain.Entities;
using MediatR;
namespace Leanetec.EConnect.Client.Order;
public record GetDocumentRequest(string TenantId, int OrderId) : HttpRequest<OrderDocument>
public record GetDocumentRequest(string TenantId, int OrderId) : HttpRequest<Response<OrderDocument, ProblemDetail>>
{
}
public class GetDocumentRequestHandler : IRequestHandler<GetDocumentRequest, OrderDocument>
public class GetDocumentRequestHandler : IRequestHandler<GetDocumentRequest, Response<OrderDocument, ProblemDetail>>
{
public Task<OrderDocument> Handle(GetDocumentRequest request, CancellationToken cancellationToken)
private readonly IEConnectClient<ProblemDetail> _client;
public GetDocumentRequestHandler(IEConnectClient<ProblemDetail> client)
{
throw new NotImplementedException();
_client = client;
}
public async Task<Response<OrderDocument, ProblemDetail>> Handle(GetDocumentRequest request, CancellationToken cancel)
{
return await _client.GetAsync<OrderDocument>(
route: $"api/public/v{request.ApiVersion}/econnect/order/document/list",
queryParams: new { request.TenantId, request.OrderId },
cancel: cancel
);
}
}