Skip to content

Commit ac5235c

Browse files
committed
fix comments
1 parent c9a377f commit ac5235c

2 files changed

Lines changed: 31 additions & 7 deletions

File tree

src/main/java/org/prebid/server/bidder/nexx360/Nexx360Bidder.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.prebid.server.bidder.nexx360;
22

33
import com.fasterxml.jackson.core.type.TypeReference;
4+
import com.fasterxml.jackson.databind.JsonNode;
5+
import com.fasterxml.jackson.databind.node.ObjectNode;
46
import com.iab.openrtb.request.BidRequest;
57
import com.iab.openrtb.request.Imp;
68
import com.iab.openrtb.response.Bid;
@@ -32,6 +34,7 @@
3234
import java.util.Collections;
3335
import java.util.List;
3436
import java.util.Objects;
37+
import java.util.Optional;
3538
import java.util.stream.Collectors;
3639

3740
public class Nexx360Bidder implements Bidder<BidRequest> {
@@ -61,16 +64,12 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest request
6164
final List<Imp> imps = request.getImp();
6265
for (int i = 0; i < imps.size(); i++) {
6366
final Imp imp = imps.get(i);
64-
final ExtImpNexx360 extImp = parseBidderExt(imp);
65-
final Imp modifiedImp = imp.toBuilder()
66-
.ext(mapper.mapper().createObjectNode().set(BIDDER_NAME, mapper.mapper().valueToTree(extImp)))
67-
.build();
68-
modifiedImps.add(modifiedImp);
69-
7067
if (i == 0) {
68+
final ExtImpNexx360 extImp = parseImpExt(imp);
7169
tagId = extImp.getTagId();
7270
placement = extImp.getPlacement();
7371
}
72+
modifiedImps.add(modifyImp(imp));
7473
}
7574
} catch (PreBidException e) {
7675
return Result.withError(BidderError.badInput(e.getMessage()));
@@ -81,14 +80,23 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest request
8180
return Result.withValue(BidderUtil.defaultRequest(modifiedRequest, url, mapper));
8281
}
8382

84-
private ExtImpNexx360 parseBidderExt(Imp imp) {
83+
private ExtImpNexx360 parseImpExt(Imp imp) {
8584
try {
8685
return mapper.mapper().convertValue(imp.getExt(), TYPE_REFERENCE).getBidder();
8786
} catch (IllegalArgumentException e) {
8887
throw new PreBidException(e.getMessage());
8988
}
9089
}
9190

91+
private Imp modifyImp(Imp imp) {
92+
return Optional.ofNullable(imp.getExt())
93+
.map(prebid -> prebid.get("bidder"))
94+
.filter(JsonNode::isObject)
95+
.map(bidder -> (ObjectNode) mapper.mapper().createObjectNode().set(BIDDER_NAME, bidder))
96+
.map(ext -> imp.toBuilder().ext(ext).build())
97+
.orElseThrow(() -> new PreBidException("imp.ext.prebid.bidder can't be parsed"));
98+
}
99+
92100
private BidRequest makeRequest(BidRequest request, List<Imp> imps) {
93101
final ExtRequest extRequest = ExtRequest.empty();
94102
extRequest.addProperty(BIDDER_NAME, mapper.mapper().valueToTree(

src/test/java/org/prebid/server/bidder/nexx360/Nexx360BidderTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,22 @@ public void makeHttpRequestsShouldReturnErrorIfImpExtCouldNotBeParsed() {
7878
assertThat(result.getValue()).isEmpty();
7979
}
8080

81+
@Test
82+
public void makeHttpRequestsShouldReturnErrorIfImpExtCouldNotBeParsedInTheSecondImp() {
83+
// given
84+
final BidRequest bidRequest = givenBidRequest(
85+
imp -> imp.id("imp1"),
86+
imp -> imp.id("imp2").ext(mapper.valueToTree(ExtPrebid.of(null, mapper.createArrayNode()))));
87+
88+
// when
89+
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);
90+
91+
// then
92+
assertThat(result.getErrors()).hasSize(1)
93+
.containsOnly(BidderError.badInput("imp.ext.prebid.bidder can't be parsed"));
94+
assertThat(result.getValue()).isEmpty();
95+
}
96+
8197
@Test
8298
public void makeHttpRequestsShouldCreateSingleRequest() {
8399
// given

0 commit comments

Comments
 (0)