Skip to content

Commit

Permalink
minor changes and fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
biegehydra committed Oct 22, 2023
1 parent 7b5c55e commit 0c15f0b
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 9 deletions.
19 changes: 18 additions & 1 deletion LibPostalApi/Controllers/LibPostalController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,21 @@ public LibPostalController(ILibPostalService libPostal)
}

[HttpPost]
[ProducesResponseType(typeof(ExpandAddressesResponse), 200, "application/json")]
[ProducesResponseType(typeof(string), 400)]
[ProducesResponseType(typeof(string), 500)]
public IActionResult ExpandAddresses([FromBody] ExpandAddressesRequest? request)
{
if (request?.Addresses is not {Count: > 0})
{
return BadRequest("No addresses in payload. Nothing to expand.");
}

if (request.Addresses.Count > 1000)
{
return BadRequest($"Too many addresses. Request had {request.Addresses.Count} addresses. Only 1000 addresses are allowed per request.");
}

var results = _libPostal.ExpandAddress(request.Addresses, request.ExpandOptions);
if (results.Results == null)
{
Expand All @@ -34,12 +42,21 @@ public IActionResult ExpandAddresses([FromBody] ExpandAddressesRequest? request)
}

[HttpPost]
[ProducesResponseType(typeof(ParseAddressesResponse), 200, "application/json")]
[ProducesResponseType(typeof(string), 400)]
[ProducesResponseType(typeof(string), 500)]
public IActionResult ParseAddresses([FromBody] ParseAddressesRequest? request)
{
if (request?.Addresses is not { Count: > 0 })
{
return BadRequest("No addresses in payload. Nothing to expand.");
return BadRequest("No addresses in payload. Nothing to parse.");
}

if (request.Addresses.Count > 1000)
{
return BadRequest($"Too many addresses. Request had {request.Addresses.Count} addresses. Only 1000 addresses are allowed per request.");
}

var results = _libPostal.ParseAddress(request.Addresses, request.ParseOptions);
if (results.Results == null)
{
Expand Down
4 changes: 2 additions & 2 deletions LibPostalApi/Interfaces/ILibPostalService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ namespace LibPostalApi.Interfaces;

public interface ILibPostalService
{
(AddressParserResponse[]? Results, int Successes, int Failures) ParseAddress(List<string> addresses, ParseOptions? dtoOptions);
(AddressExpansionResponse[]? Results, int Successes, int Failures) ExpandAddress(List<string> addresses, ExpandOptions? dtoOptions);
(AddressParserResponse[]? Results, int Successes, int Failures) ParseAddress(List<string> addresses, ParseOptions? dtoOptions = null);
(AddressExpansionResponse[]? Results, int Successes, int Failures) ExpandAddress(List<string> addresses, ExpandOptions? dtoOptions = null);
}
2 changes: 1 addition & 1 deletion LibPostalApi/Models/Requests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace LibPostalApi.Models;
public record ParseAddressesRequest(List<string>? Addresses, ParseOptions? ParseOptions);
public record ExpandAddressesRequest(List<string>? Addresses, ExpandOptions? ExpandOptions);
public record ExpandAddressesResponse(AddressExpansionResponse[]? ParseResults, int AddressesReceived, int SuccessfullyParsedCount, int UnsuccessfullyParsedCount);
public record ExpandAddressesResponse(AddressExpansionResponse[]? ExpandResults, int AddressesReceived, int SuccessfullyParsedCount, int UnsuccessfullyParsedCount);
public record ParseAddressesResponse(AddressParserResponse[]? ParseResults, int AddressesReceived, int SuccessfullyExpandCount, int UnsuccessfullyExpandedCount);
public record ParseOptions(string? Country, string? Language);

Expand Down
12 changes: 9 additions & 3 deletions LibPostalApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@


var app = builder.Build();

if (app.Environment.IsProduction())
{
var port = Environment.GetEnvironmentVariable("PORT") ?? "80";
Console.WriteLine($"Port Is Null: {string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("PORT"))}");
builder.WebHost.UseUrls($"http://*:{port}");
}
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
Expand All @@ -31,8 +36,9 @@
if (context.Request.Path.StartsWithSegments("/health"))
{
var libPostal = app.Services.GetRequiredService<ILibPostalService>();
var testResult = libPostal.ParseAddress(TestData.TestAddress);
if (testResult == null)
var testParse = libPostal.ParseAddress(TestData.TestAddress);
var testExpand = libPostal.ParseAddress(TestData.TestAddress);
if (testParse.Results == null || testExpand.Results == null)
{
context.Response.StatusCode = 500;
await context.Response.WriteAsync("LibPostalApi is not healthy");
Expand Down
2 changes: 2 additions & 0 deletions LibPostalApi/Services/LibPostalService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public LibPostalService(IConfiguration config)
var result = _libPostal.ParseAddress(address, domainOptions);
results[i] = result;
successes++;
i++;
}
catch (Exception ex)
{
Expand Down Expand Up @@ -92,6 +93,7 @@ public LibPostalService(IConfiguration config)
var result = _libPostal.ExpandAddress(address, domainOptions);
results[i] = result;
successes++;
i++;
}
catch (Exception ex)
{
Expand Down
4 changes: 2 additions & 2 deletions LibPostalNet/AddressParserResponse.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public long NumComponents
}
}

public string[] Components
private string[] Components
{
get
{
Expand All @@ -65,7 +65,7 @@ public string[] Components
}
}

public string[] Labels
private string[] Labels
{
get
{
Expand Down

0 comments on commit 0c15f0b

Please sign in to comment.