Skip to content

Commit c395bcb

Browse files
author
Samuel Alejandro Maldonado Garcia
committed
fixes
1 parent 41913ef commit c395bcb

File tree

2 files changed

+31
-36
lines changed

2 files changed

+31
-36
lines changed

src/main/java/org/prebid/server/bidder/alvads/AlvadsBidder.java

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.iab.openrtb.request.Banner;
55
import com.iab.openrtb.request.BidRequest;
66
import com.iab.openrtb.request.Imp;
7+
import com.iab.openrtb.request.Site;
78
import com.iab.openrtb.request.Video;
89
import com.iab.openrtb.response.Bid;
910
import com.iab.openrtb.response.BidResponse;
@@ -20,6 +21,7 @@
2021
import org.prebid.server.bidder.model.HttpRequest;
2122
import org.prebid.server.bidder.model.Result;
2223
import org.prebid.server.exception.PreBidException;
24+
import org.prebid.server.json.DecodeException;
2325
import org.prebid.server.json.JacksonMapper;
2426
import org.prebid.server.proto.openrtb.ext.ExtPrebid;
2527
import org.prebid.server.proto.openrtb.ext.request.alvads.AlvadsImpExt;
@@ -37,7 +39,6 @@
3739
import java.util.stream.Collectors;
3840

3941
public class AlvadsBidder implements Bidder<AlvadsRequestOrtb> {
40-
4142
private static final TypeReference<ExtPrebid<?, AlvadsImpExt>>
4243
ALVADS_EXT_TYPE_REFERENCE = new TypeReference<>() { };
4344

@@ -64,18 +65,21 @@ public final Result<List<HttpRequest<AlvadsRequestOrtb>>> makeHttpRequests(BidRe
6465
}
6566
}
6667

67-
if (httpRequests.isEmpty()) {
68-
errors.add(BidderError.badInput("found no valid impressions"));
69-
return Result.withErrors(errors);
70-
}
68+
return httpRequests.isEmpty() ? Result.withErrors(errors) : Result.of(httpRequests, errors);
69+
}
7170

72-
return Result.of(httpRequests, errors);
71+
private AlvadsImpExt parseImpExt(Imp imp) {
72+
try {
73+
return mapper.mapper().convertValue(imp.getExt(), ALVADS_EXT_TYPE_REFERENCE).getBidder();
74+
} catch (IllegalArgumentException e) {
75+
throw new PreBidException("Missing or invalid bidder ext in impression with id: " + imp.getId());
76+
}
7377
}
7478

7579
private HttpRequest<AlvadsRequestOrtb> makeHttpRequest(BidRequest request, Imp imp, AlvadsImpExt impExt) {
7680
final String resolvedUrl = makeUrl(impExt);
7781
final AlvaAdsImp impObj = makeImp(imp);
78-
final AlvaAdsSite siteObj = makeSite(request, impExt);
82+
final AlvaAdsSite siteObj = makeSite(request.getSite(), impExt.getPublisherUniqueId());
7983
final AlvadsRequestOrtb alvadsRequest = AlvadsRequestOrtb.builder()
8084
.id(request.getId())
8185
.imp(List.of(impObj))
@@ -95,13 +99,6 @@ private HttpRequest<AlvadsRequestOrtb> makeHttpRequest(BidRequest request, Imp i
9599
.build();
96100
}
97101

98-
private AlvadsImpExt parseImpExt(Imp imp) {
99-
try {
100-
return mapper.mapper().convertValue(imp.getExt(), ALVADS_EXT_TYPE_REFERENCE).getBidder();
101-
} catch (IllegalArgumentException e) {
102-
throw new PreBidException("Missing or invalid bidder ext in impression with id: " + imp.getId());
103-
}
104-
}
105102

106103
private String makeUrl(AlvadsImpExt impExt) {
107104
final String resolvedUrl = impExt.getEndpointUrl() != null ? impExt.getEndpointUrl() : endpointUrl;
@@ -113,7 +110,7 @@ private String makeUrl(AlvadsImpExt impExt) {
113110
}
114111
}
115112

116-
private AlvaAdsImp makeImp(Imp imp) {
113+
private static AlvaAdsImp makeImp(Imp imp) {
117114
final Banner banner = imp.getBanner();
118115
Map<String, Object> bannerMap = null;
119116
if (banner != null) {
@@ -147,12 +144,12 @@ private AlvaAdsImp makeImp(Imp imp) {
147144
.build();
148145
}
149146

150-
private AlvaAdsSite makeSite(BidRequest request, AlvadsImpExt impExt) {
151-
final String page = request.getSite() != null ? request.getSite().getPage() : null;
147+
private static AlvaAdsSite makeSite(Site site, String publisherUniqueId) {
148+
final String page = site != null ? site.getPage() : null;
152149
return AlvaAdsSite.builder()
153150
.page(page)
154151
.ref(page)
155-
.publisher(Map.of("id", impExt.getPublisherUniqueId()))
152+
.publisher(Map.of("id", publisherUniqueId))
156153
.build();
157154
}
158155

@@ -161,7 +158,7 @@ public final Result<List<BidderBid>> makeBids(BidderCall<AlvadsRequestOrtb> http
161158
try {
162159
final BidResponse bidResponse = mapper.decodeValue(httpCall.getResponse().getBody(), BidResponse.class);
163160
return Result.withValues(extractBids(bidResponse, httpCall.getRequest().getPayload()));
164-
} catch (org.prebid.server.json.DecodeException e) {
161+
} catch (DecodeException e) {
165162
return Result.withError(BidderError.badServerResponse("Failed to decode BidResponse: " + e.getMessage()));
166163
}
167164
}
@@ -175,23 +172,20 @@ private List<BidderBid> extractBids(BidResponse bidResponse, AlvadsRequestOrtb r
175172

176173
private List<BidderBid> bidsFromResponse(BidResponse bidResponse, AlvadsRequestOrtb request) {
177174
return bidResponse.getSeatbid().stream()
178-
.filter(Objects::nonNull)
179-
.map(SeatBid::getBid)
180-
.filter(Objects::nonNull)
181-
.flatMap(Collection::stream)
182-
.filter(Objects::nonNull)
183-
.map(bid -> {
184-
final AlvaAdsImp imp = request.getImp().stream()
185-
.filter(i -> i.getId().equals(bid.getImpid()))
186-
.findFirst()
187-
.orElse(null);
188-
189-
return BidderBid.of(bid, getBidType(bid, imp), bidResponse.getCur());
190-
})
191-
.filter(Objects::nonNull)
175+
.flatMap(seatBid -> seatBid.getBid().stream())
176+
.map(bid -> makeBid(bid, request, bidResponse.getCur()))
192177
.toList();
193178
}
194179

180+
private BidderBid makeBid(Bid bid, AlvadsRequestOrtb request, String currency) {
181+
final AlvaAdsImp imp = request.getImp().stream()
182+
.filter(i -> i.getId().equals(bid.getImpid()))
183+
.findFirst()
184+
.orElse(null);
185+
186+
return BidderBid.of(bid, getBidType(bid, imp), currency);
187+
}
188+
195189
private BidType getBidType(Bid bid, AlvaAdsImp imp) {
196190
if (imp != null && imp.getVideo() != null) {
197191
return BidType.video;

src/main/java/org/prebid/server/spring/config/bidder/AlvadsConfiguration.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ BidderConfigurationProperties configurationProperties() {
2828
}
2929

3030
@Bean
31-
BidderDeps alvadsBidderDeps(BidderConfigurationProperties alvadsConfigurationProperties,
32-
@NotBlank @Value("${external-url}") String externalUrl,
33-
JacksonMapper mapper) {
31+
BidderDeps alvadsBidderDeps(
32+
BidderConfigurationProperties alvadsConfigurationProperties,
33+
@NotBlank @Value("${external-url}") String externalUrl,
34+
JacksonMapper mapper) {
3435

3536
return BidderDepsAssembler.forBidder(BIDDER_NAME)
3637
.withConfig(alvadsConfigurationProperties)

0 commit comments

Comments
 (0)