GuestLog - Integrated AddressQuery dialog in GuestDocument creation and fixes.

- Added new CountryCodeUtils to map ISO-3166:Alpha2 country codes to ISO-3166:Alpha3 codes.
- Added new config for results language of AddressQuery services.
This commit is contained in:
2026-08-11 22:02:15 +02:00
parent 5c7fed2677
commit 8232e7d7c9
8 changed files with 466 additions and 43 deletions
@@ -2,6 +2,7 @@ using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Options;
using Somnia.GuestLog.Models.Configuration;
using Somnia.GuestLog.Models.DTOs;
using Somnia.GuestLog.Utils;
namespace Somnia.GuestLog.Services.AddressQuery;
@@ -36,6 +37,8 @@ public class NominatimAddressQueryService(
continue;
}
string? alpha3CountryCode = CountryCodesUtils.Alpha2ToAlpha3(result.Address.Country_code);
rsList.Add(new()
{
HouseNumber = result.Address.House_number,
@@ -44,7 +47,8 @@ public class NominatimAddressQueryService(
AddressProvince = result.Address.Province,
AddressState = result.Address.State,
AddressCountry = result.Address.Country,
ZipCode = result.Address.Postcode
ZipCode = result.Address.Postcode,
AddressCountryCode = alpha3CountryCode
});
}
@@ -66,7 +70,10 @@ public class NominatimAddressQueryService(
client.BaseAddress = baseAddr;
client.DefaultRequestHeaders.UserAgent.ParseAdd(config.UserAgent ?? defaultUserAgent);
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("es");
if (config.ResultLang is not null)
{
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd(config.ResultLang);
}
return client;
}
@@ -92,7 +99,8 @@ public class NominatimAddressQueryService(
string? Province = null,
string? State = null,
string? Country = null,
string? Postcode = null
string? Postcode = null,
string? Country_code = null
);
private record class ApiResult(