From fc7cd09d17d56a36ce9bc11564455618231d4105 Mon Sep 17 00:00:00 2001 From: Xan Johnson Date: Tue, 5 Mar 2024 16:45:48 -0700 Subject: [PATCH] Add urlComponents field to request --- src/main/java/com/smartystreets/api/Request.java | 12 +++++++----- .../com/smartystreets/api/URLPrefixSender.java | 9 +++------ .../api/international_autocomplete/Client.java | 2 +- .../smartystreets/api/us_enrichment/Client.java | 2 +- .../examples/UsStreetSingleAddressExample.java | 2 +- .../smartystreets/api/URLPrefixSenderTest.java | 16 +++++++++++++++- 6 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/smartystreets/api/Request.java b/src/main/java/com/smartystreets/api/Request.java index b5fc3fd..b1da12e 100644 --- a/src/main/java/com/smartystreets/api/Request.java +++ b/src/main/java/com/smartystreets/api/Request.java @@ -11,11 +11,13 @@ public class Request { private final Map parameters; private String urlPrefix; private String method; + private String urlComponents; private String contentType; private byte[] payload; public Request() { this.urlPrefix = ""; + this.urlComponents = ""; this.method = "GET"; this.headers = new HashMap<>(); this.parameters = new LinkedHashMap<>(); @@ -75,10 +77,6 @@ public byte[] getPayload() { return this.payload; } - public String getUrlPrefix() { - return this.urlPrefix; - } - public String getContentType() { return contentType; } @@ -93,7 +91,11 @@ public void setPayload(byte[] payload) { } public void setUrlPrefix(String urlPrefix) { - this.urlPrefix = urlPrefix; + this.urlPrefix = urlPrefix + urlComponents; + } + + public void setUrlComponents(String urlComponents) { + this.urlComponents = urlComponents; } public void setContentType(String contentType) { diff --git a/src/main/java/com/smartystreets/api/URLPrefixSender.java b/src/main/java/com/smartystreets/api/URLPrefixSender.java index b74f787..6ec9aa7 100644 --- a/src/main/java/com/smartystreets/api/URLPrefixSender.java +++ b/src/main/java/com/smartystreets/api/URLPrefixSender.java @@ -15,11 +15,8 @@ public URLPrefixSender(String urlPrefix, Sender inner) { } public Response send(Request request) throws IOException, SmartyException, InterruptedException { - if(request.getUrlPrefix() != null && !request.getUrlPrefix().isEmpty()) { - request.setUrlPrefix(this.urlPrefix + request.getUrlPrefix()); - } else { - request.setUrlPrefix(this.urlPrefix); - } + request.setUrlPrefix(this.urlPrefix); + return this.inner.send(request); } -} +} \ No newline at end of file diff --git a/src/main/java/com/smartystreets/api/international_autocomplete/Client.java b/src/main/java/com/smartystreets/api/international_autocomplete/Client.java index 8988a39..0f5a41c 100644 --- a/src/main/java/com/smartystreets/api/international_autocomplete/Client.java +++ b/src/main/java/com/smartystreets/api/international_autocomplete/Client.java @@ -38,7 +38,7 @@ private Request buildRequest(Lookup lookup) { Request request = new Request(); if(lookup.getAddressID() != null && !lookup.getAddressID().isEmpty()) { - request.setUrlPrefix("/" + lookup.getAddressID()); + request.setUrlComponents("/" + lookup.getAddressID()); } request.putParameter("country", lookup.getCountry()); diff --git a/src/main/java/com/smartystreets/api/us_enrichment/Client.java b/src/main/java/com/smartystreets/api/us_enrichment/Client.java index 50f6334..dc857c8 100644 --- a/src/main/java/com/smartystreets/api/us_enrichment/Client.java +++ b/src/main/java/com/smartystreets/api/us_enrichment/Client.java @@ -46,7 +46,7 @@ private void send(Lookup lookup) throws IOException, SmartyException, Interrupte private Request buildRequest(Lookup lookup) { Request request = new Request(); - request.setUrlPrefix("/" + lookup.getSmartyKey() + "/" + lookup.getDatasetName() + "/" + lookup.getDataSubsetName()); + request.setUrlComponents("/" + lookup.getSmartyKey() + "/" + lookup.getDatasetName() + "/" + lookup.getDataSubsetName()); return request; } } diff --git a/src/main/java/examples/UsStreetSingleAddressExample.java b/src/main/java/examples/UsStreetSingleAddressExample.java index ac62aa9..6f6c7a2 100644 --- a/src/main/java/examples/UsStreetSingleAddressExample.java +++ b/src/main/java/examples/UsStreetSingleAddressExample.java @@ -15,7 +15,7 @@ public class UsStreetSingleAddressExample { public static void main(String[] args) { // We recommend storing your authentication credentials in environment variables. // for server-to-server requests, use this code: - //StaticCredentials credentials = new StaticCredentials(System.getenv("SMARTY_AUTH_ID"), System.getenv("SMARTY_AUTH_TOKEN")); + // StaticCredentials credentials = new StaticCredentials(System.getenv("SMARTY_AUTH_ID"), System.getenv("SMARTY_AUTH_TOKEN")); // for client-side requests (browser/mobile), use this code: SharedCredentials credentials = new SharedCredentials(System.getenv("SMARTY_AUTH_WEB"), System.getenv("SMARTY_AUTH_REFERER")); diff --git a/src/test/java/com/smartystreets/api/URLPrefixSenderTest.java b/src/test/java/com/smartystreets/api/URLPrefixSenderTest.java index ae32852..36fa74e 100644 --- a/src/test/java/com/smartystreets/api/URLPrefixSenderTest.java +++ b/src/test/java/com/smartystreets/api/URLPrefixSenderTest.java @@ -11,7 +11,7 @@ public class URLPrefixSenderTest { @Test public void testRequestURLPresent() throws Exception { Request request = new Request(); - request.setUrlPrefix("/jimbo"); + request.setUrlComponents("/jimbo"); Sender inner = new MockSender(new Response(123, null)); Sender sender = new URLPrefixSender("http://mysite.com/lookup", inner); @@ -30,4 +30,18 @@ public void testRequestURLNotPresent() throws Exception { assertEquals("http://mysite.com/lookup?", request.getUrl()); } + + @Test + public void testMultipleSends() throws Exception { + Request request = new Request(); + request.setUrlComponents("/jimbo"); + Sender inner = new MockSender(new Response(123, null)); + Sender sender = new URLPrefixSender("http://mysite.com/lookup", inner); + + Response response = sender.send(request); + response = sender.send(request); + response = sender.send(request); + + assertEquals("http://mysite.com/lookup/jimbo?", request.getUrl()); + } }