27 lines
1.2 KiB
C#
27 lines
1.2 KiB
C#
using System.Net.Http.Json;
|
|
using Kitchen.Service.Application.Ports;
|
|
using Kitchen.Service.Application.State;
|
|
|
|
namespace Kitchen.Service.Grpc.Adapters;
|
|
|
|
public sealed class OperationsDalRestaurantLifecycleSyncClient(HttpClient httpClient) : IRestaurantLifecycleSyncPort
|
|
{
|
|
public async Task<PersistedRestaurantLifecycleRecord?> GetOrderAsync(string contextId, string orderId, CancellationToken cancellationToken)
|
|
{
|
|
var response = await httpClient.GetAsync($"/internal/operations-dal/orders/{Uri.EscapeDataString(orderId)}?contextId={Uri.EscapeDataString(contextId)}", cancellationToken);
|
|
if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
response.EnsureSuccessStatusCode();
|
|
return await response.Content.ReadFromJsonAsync<PersistedRestaurantLifecycleRecord>(cancellationToken: cancellationToken);
|
|
}
|
|
|
|
public async Task UpsertOrderAsync(PersistedRestaurantLifecycleRecord record, CancellationToken cancellationToken)
|
|
{
|
|
var response = await httpClient.PostAsJsonAsync("/internal/operations-dal/orders", record, cancellationToken);
|
|
response.EnsureSuccessStatusCode();
|
|
}
|
|
}
|