use of com.adobe.target.delivery.v1.model.Geo in project target-java-sdk by adobe.
the class GeoParamsCollator method collateParams.
public Map<String, Object> collateParams(TargetDeliveryRequest deliveryRequest, RequestDetails requestDetails) {
Map<String, Object> params = new HashMap<>();
Context context = deliveryRequest.getDeliveryRequest().getContext();
if (context == null || context.getGeo() == null) {
params.putAll(DEFAULT_GEO_PARAMS);
return params;
}
Geo geo = context.getGeo();
params.put(GEO_LATITUDE, geo.getLatitude());
params.put(GEO_LONGITUDE, geo.getLongitude());
params.put(GEO_CITY, StringUtils.isEmpty(geo.getCity()) ? "" : geo.getCity().toUpperCase().replace(" ", ""));
params.put(GEO_REGION, StringUtils.isEmpty(geo.getStateCode()) ? "" : geo.getStateCode().toUpperCase());
params.put(GEO_COUNTRY, StringUtils.isEmpty(geo.getCountryCode()) ? "" : geo.getCountryCode().toUpperCase());
return params;
}
use of com.adobe.target.delivery.v1.model.Geo in project target-java-sdk by adobe.
the class OnDeviceDecisioningService method geoLookupIfNeeded.
private void geoLookupIfNeeded(TargetDeliveryRequest deliveryRequest, boolean doGeoLookup) {
if (!doGeoLookup) {
return;
}
Context context = deliveryRequest.getDeliveryRequest().getContext();
if (context != null) {
Geo geo = context.getGeo();
if (geo != null) {
if (StringUtils.isNotEmpty(geo.getIpAddress()) && StringUtils.isEmpty(geo.getCity()) && StringUtils.isEmpty(geo.getStateCode()) && StringUtils.isEmpty(geo.getCountryCode()) && geo.getLatitude() == null && geo.getLongitude() == null) {
Geo resolvedGeo = this.geoClient.lookupGeo(geo.getIpAddress());
deliveryRequest.getDeliveryRequest().getContext().setGeo(resolvedGeo);
}
}
}
}
use of com.adobe.target.delivery.v1.model.Geo in project target-java-sdk by adobe.
the class DefaultGeoClient method headersToGeo.
protected Geo headersToGeo(Headers headers) {
Geo geo = new Geo();
geo.setCity(headers.getFirst(GEO_HEADER_CITY));
geo.setStateCode(headers.getFirst(GEO_HEADER_REGION));
geo.setCountryCode(headers.getFirst(GEO_HEADER_COUNTRY));
geo.setLatitude(parseFloat(headers.getFirst(GEO_HEADER_LATITUDE)));
geo.setLongitude(parseFloat(headers.getFirst(GEO_HEADER_LONGITUDE)));
return geo;
}
use of com.adobe.target.delivery.v1.model.Geo in project target-java-sdk by adobe.
the class DefaultGeoClientTest method testDefaultGeoClient.
@Test
void testDefaultGeoClient() {
String domain = "test.com";
ClientConfig clientConfig = ClientConfig.builder().organizationId("testOrgId").onDeviceConfigHostname(domain).build();
DefaultGeoClient geoClient = spy(DefaultGeoClient.class);
geoClient.start(clientConfig);
String ip = "127.0.0.1";
String url = "https://" + domain + DefaultGeoClient.GEO_PATH;
String city = "SAN FRANCISCO";
String regionCode = "CA";
String countryCode = "US";
float latitude = 37.74f;
float longitude = -122.24f;
GetRequest request = mock(GetRequest.class);
@SuppressWarnings("rawtypes") HttpResponse response = mock(HttpResponse.class);
Headers headers = new Headers();
headers.add(DefaultGeoClient.GEO_HEADER_CITY, city);
headers.add(DefaultGeoClient.GEO_HEADER_REGION, regionCode);
headers.add(DefaultGeoClient.GEO_HEADER_COUNTRY, countryCode);
headers.add(DefaultGeoClient.GEO_HEADER_LATITUDE, String.valueOf(latitude));
headers.add(DefaultGeoClient.GEO_HEADER_LONGITUDE, String.valueOf(longitude));
Mockito.doReturn(response).when(request).asEmpty();
Mockito.doReturn(headers).when(response).getHeaders();
Mockito.doReturn(request).when(geoClient).geoRequest(any(), any(), any());
Geo geoResponse = geoClient.lookupGeo(ip);
verify(geoClient).geoRequest(eq(url), eq(DefaultGeoClient.GEO_IP_HEADER), eq(ip));
assertEquals(city, geoResponse.getCity());
assertEquals(regionCode, geoResponse.getStateCode());
assertEquals(countryCode, geoResponse.getCountryCode());
assertEquals(latitude, geoResponse.getLatitude(), 0.01);
assertEquals(longitude, geoResponse.getLongitude(), 0.01);
}
use of com.adobe.target.delivery.v1.model.Geo in project target-java-sdk by adobe.
the class GeoParamsCollatorTest method testCollator.
@Test
public void testCollator() {
VisitorProvider.init("testOrgId");
RequestDetails pageLoad = new RequestDetails();
Geo geo = new Geo();
geo.setCity("san francisco");
geo.setStateCode("ca");
geo.setCountryCode("us");
geo.setLatitude(37.74f);
geo.setLongitude(-122.24f);
TargetDeliveryRequest request = TargetDeliveryRequest.builder().execute(new ExecuteRequest().pageLoad(pageLoad)).context(new Context().geo(geo)).build();
GeoParamsCollator collator = new GeoParamsCollator();
Map<String, Object> result = collator.collateParams(request, pageLoad);
assertEquals("SANFRANCISCO", result.get(GeoParamsCollator.GEO_CITY));
assertEquals("CA", result.get(GeoParamsCollator.GEO_REGION));
assertEquals("US", result.get(GeoParamsCollator.GEO_COUNTRY));
assertEquals(37.74f, (Float) result.get(GeoParamsCollator.GEO_LATITUDE), 0.01);
assertEquals(-122.24f, (Float) result.get(GeoParamsCollator.GEO_LONGITUDE), 0.01);
}
Aggregations