11package org .prebid .server .bidder .alvads ;
22
33import com .fasterxml .jackson .core .type .TypeReference ;
4+ import com .iab .openrtb .request .Banner ;
45import com .iab .openrtb .request .BidRequest ;
56import com .iab .openrtb .request .Imp ;
67import com .iab .openrtb .request .Site ;
8+ import com .iab .openrtb .request .Video ;
79import com .iab .openrtb .response .Bid ;
810import com .iab .openrtb .response .BidResponse ;
911import io .vertx .core .http .HttpMethod ;
2527import org .prebid .server .proto .openrtb .ext .response .BidType ;
2628import org .prebid .server .util .HttpUtil ;
2729
28- import java .net .URI ;
2930import java .util .ArrayList ;
3031import java .util .Collections ;
3132import java .util .HashMap ;
3233import java .util .List ;
3334import java .util .Map ;
3435import java .util .Objects ;
36+ import java .util .Optional ;
3537import java .util .stream .Collectors ;
3638
3739public class AlvadsBidder implements Bidder <AlvadsRequestOrtb > {
@@ -75,7 +77,6 @@ private AlvadsImpExt parseImpExt(Imp imp) {
7577 }
7678
7779 private HttpRequest <AlvadsRequestOrtb > makeHttpRequest (BidRequest request , Imp imp , AlvadsImpExt impExt ) {
78- final String resolvedUrl = makeUrl (impExt );
7980 final AlvaAdsImp impObj = makeImp (imp );
8081 final AlvaAdsSite siteObj = makeSite (request .getSite (), impExt .getPublisherUniqueId ());
8182 final AlvadsRequestOrtb alvadsRequest = AlvadsRequestOrtb .builder ()
@@ -89,31 +90,24 @@ private HttpRequest<AlvadsRequestOrtb> makeHttpRequest(BidRequest request, Imp i
8990
9091 return HttpRequest .<AlvadsRequestOrtb >builder ()
9192 .method (HttpMethod .POST )
92- .uri (resolvedUrl )
93+ .uri (endpointUrl )
9394 .headers (HttpUtil .headers ())
9495 .payload (alvadsRequest )
9596 .body (mapper .encodeToBytes (alvadsRequest ))
9697 .impIds (alvadsRequest .getImp ().stream ().map (AlvaAdsImp ::getId ).collect (Collectors .toSet ()))
9798 .build ();
9899 }
99100
100- private String makeUrl (AlvadsImpExt impExt ) {
101- final String resolvedUrl = impExt .getEndpointUrl () != null ? impExt .getEndpointUrl () : endpointUrl ;
102- try {
103- URI .create (resolvedUrl );
104- return resolvedUrl ;
105- } catch (IllegalArgumentException e ) {
106- throw new PreBidException ("Invalid endpoint URL: " + resolvedUrl , e );
107- }
108- }
109-
110101 private static AlvaAdsImp makeImp (Imp imp ) {
102+ final Banner banner = imp .getBanner ();
103+ final Video video = imp .getVideo ();
104+
111105 return AlvaAdsImp .builder ()
112106 .id (imp .getId ())
113107 .tagid (imp .getTagid ())
114108 .bidfloor (imp .getBidfloor ())
115- .banner (imp . getBanner () != null ? sizes (imp . getBanner (). getW (), imp . getBanner () .getH ()) : null )
116- .video (imp . getVideo () != null ? sizes (imp . getVideo (). getW (), imp . getVideo () .getH ()) : null )
109+ .banner (banner != null ? sizes (banner . getW (), banner .getH ()) : null )
110+ .video (video != null ? sizes (video . getW (), video .getH ()) : null )
117111 .build ();
118112 }
119113
@@ -175,13 +169,9 @@ private BidType getBidType(Bid bid, AlvaAdsImp imp) {
175169 return BidType .video ;
176170 }
177171
178- final ExtBidAlvads bidExt = getBidExt (bid );
179- if (bidExt == null ) {
180- return BidType .banner ;
181- }
182-
183- final BidType crtype = bidExt .getCrtype ();
184- return crtype != null ? crtype : BidType .banner ;
172+ return Optional .ofNullable (getBidExt (bid ))
173+ .map (ExtBidAlvads ::getCrtype )
174+ .orElse (BidType .banner );
185175 }
186176
187177 private ExtBidAlvads getBidExt (Bid bid ) {
0 commit comments