From 7635886ff9b139b395ae2da4bc980ddf1a534d3e Mon Sep 17 00:00:00 2001 From: Jicheng Lu Date: Wed, 20 Mar 2024 00:00:29 -0500 Subject: [PATCH] add try catch --- .../Google/Models/GoogleAddressResult.cs | 2 +- .../Controllers/AddressController.cs | 29 +++++++++++++------ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/Infrastructure/BotSharp.Abstraction/Google/Models/GoogleAddressResult.cs b/src/Infrastructure/BotSharp.Abstraction/Google/Models/GoogleAddressResult.cs index ec156261..a327102d 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Google/Models/GoogleAddressResult.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Google/Models/GoogleAddressResult.cs @@ -2,7 +2,7 @@ namespace BotSharp.Abstraction.Google.Models; public class GoogleAddressResult { - public IList Results { get; set; } + public IList Results { get; set; } = new List(); public string Status { get; set; } } diff --git a/src/Infrastructure/BotSharp.OpenAPI/Controllers/AddressController.cs b/src/Infrastructure/BotSharp.OpenAPI/Controllers/AddressController.cs index 5d674b21..755b8232 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/Controllers/AddressController.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/Controllers/AddressController.cs @@ -11,6 +11,7 @@ public class AddressController : ControllerBase private readonly IServiceProvider _services; private readonly BotSharpOptions _options; private readonly IHttpClientFactory _httpClientFactory; + private readonly ILogger _logger; public AddressController(IServiceProvider services, IHttpClientFactory httpClientFactory, @@ -24,16 +25,26 @@ public class AddressController : ControllerBase [HttpGet("/address/options")] public async Task GetAddressOptions([FromQuery] string address) { - var settings = _services.GetRequiredService(); - using var client = _httpClientFactory.CreateClient(); - var url = $"{settings.Endpoint}?key={settings.ApiKey}&" + - $"components={settings.Components}&" + - $"language={settings.Language}&" + - $"address={address}"; + var result = new GoogleAddressResult(); + + try + { + var settings = _services.GetRequiredService(); + using var client = _httpClientFactory.CreateClient(); + var url = $"{settings.Endpoint}?key={settings.ApiKey}&" + + $"components={settings.Components}&" + + $"language={settings.Language}&" + + $"address={address}"; + + var response = await client.GetAsync(url); + var responseStr = await response.Content.ReadAsStringAsync(); + result = JsonSerializer.Deserialize(responseStr, _options.JsonSerializerOptions); + } + catch (Exception ex) + { + _logger.LogError($"Error when calling google geocoding api... ${ex.Message}"); + } - var response = await client.GetAsync(url); - var responseStr = await response.Content.ReadAsStringAsync(); - var result = JsonSerializer.Deserialize(responseStr, _options.JsonSerializerOptions); return result; } }