Skip to content

Commit 001d978

Browse files
Get domain from page for Url constructing in Eplanning Bidder (prebid#899)
1 parent 0d4ac60 commit 001d978

File tree

2 files changed

+42
-4
lines changed

2 files changed

+42
-4
lines changed

src/main/java/org/prebid/server/bidder/eplanning/EplanningBidder.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import org.prebid.server.util.HttpUtil;
3636

3737
import java.math.BigDecimal;
38+
import java.net.MalformedURLException;
39+
import java.net.URL;
3840
import java.util.ArrayList;
3941
import java.util.Arrays;
4042
import java.util.Collections;
@@ -191,10 +193,19 @@ private String resolveRequestUri(BidRequest request, List<String> requestsString
191193
final String ip = device != null ? device.getIp() : null;
192194

193195
final Site site = request.getSite();
194-
final String pageDomain = site != null && StringUtils.isNotBlank(site.getDomain())
195-
? site.getDomain() : DEFAULT_PAGE_URL;
196-
final String pageUrl = site != null && StringUtils.isNotBlank(site.getPage())
197-
? site.getPage() : DEFAULT_PAGE_URL;
196+
String pageUrl = DEFAULT_PAGE_URL;
197+
if (site != null && StringUtils.isNotBlank(site.getPage())) {
198+
pageUrl = site.getPage();
199+
}
200+
201+
String pageDomain = DEFAULT_PAGE_URL;
202+
if (site != null) {
203+
if (StringUtils.isNotBlank(site.getDomain())) {
204+
pageDomain = site.getDomain();
205+
} else if (StringUtils.isNotBlank(site.getPage())) {
206+
pageDomain = parseUrl(site.getPage()).getHost();
207+
}
208+
}
198209

199210
final App app = request.getApp();
200211
final String requestTarget = app != null && StringUtils.isNotBlank(app.getBundle())
@@ -239,6 +250,14 @@ private String resolveRequestUri(BidRequest request, List<String> requestsString
239250
return uriBuilder.toString();
240251
}
241252

253+
private static URL parseUrl(String url) {
254+
try {
255+
return new URL(url);
256+
} catch (MalformedURLException e) {
257+
throw new PreBidException(String.format("Invalid url: %s", url), e);
258+
}
259+
}
260+
242261
/**
243262
* Converts response to {@link List} of {@link BidderBid}s with {@link List} of errors.
244263
* Handles cases when response status is different to OK 200.

src/test/java/org/prebid/server/bidder/eplanning/EplanningBidderTest.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,25 @@ public void makeHttpRequestsShouldSetCorrectUriWithSitePageAndDomain() {
210210
+ "testadun_itco_de%3A1x1");
211211
}
212212

213+
@Test
214+
public void makeHttpRequestsShouldSetCorrectUriIfSiteDomainIsBlank() {
215+
// given
216+
final BidRequest bidRequest = givenBidRequest(
217+
requestBuilder -> requestBuilder
218+
.site(Site.builder().page("https://www.example.com").domain("").build()),
219+
identity());
220+
221+
// when
222+
final Result<List<HttpRequest<Void>>> result = eplanningBidder.makeHttpRequests(bidRequest);
223+
224+
// then
225+
assertThat(result.getErrors()).isEmpty();
226+
assertThat(result.getValue()).hasSize(1)
227+
.extracting(HttpRequest::getUri)
228+
.containsOnly("https://eplanning.com/clientId/1/www.example.com/ROS?ct=1&r=pbs&ncb=1"
229+
+ "&ur=https%3A%2F%2Fwww.example.com&e=testadun_itco_de:1x1");
230+
}
231+
213232
@Test
214233
public void makeHttpRequestsShouldSetCorrectUriWithSizeString() {
215234
// given

0 commit comments

Comments
 (0)