add try catch

This commit is contained in:
Jicheng Lu 2024-03-20 00:00:29 -05:00
parent 8c4c0a0e6e
commit 7635886ff9
2 changed files with 21 additions and 10 deletions

View file

@ -2,7 +2,7 @@ namespace BotSharp.Abstraction.Google.Models;
public class GoogleAddressResult
{
public IList<GoogleAddress> Results { get; set; }
public IList<GoogleAddress> Results { get; set; } = new List<GoogleAddress>();
public string Status { get; set; }
}

View file

@ -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<GoogleAddressResult> GetAddressOptions([FromQuery] string address)
{
var settings = _services.GetRequiredService<GoogleApiSettings>();
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<GoogleApiSettings>();
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<GoogleAddressResult>(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<GoogleAddressResult>(responseStr, _options.JsonSerializerOptions);
return result;
}
}