11package org .prebid .server .bidder .nexx360 ;
22
33import com .fasterxml .jackson .core .type .TypeReference ;
4- import com .fasterxml .jackson .databind .JsonNode ;
5- import com .fasterxml .jackson .databind .node .ObjectNode ;
64import com .iab .openrtb .request .BidRequest ;
75import com .iab .openrtb .request .Imp ;
86import com .iab .openrtb .response .Bid ;
3432import java .util .Collections ;
3533import java .util .List ;
3634import java .util .Objects ;
37- import java .util .Optional ;
3835import java .util .stream .Collectors ;
3936
4037public class Nexx360Bidder implements Bidder <BidRequest > {
@@ -55,28 +52,22 @@ public Nexx360Bidder(String endpointUrl, JacksonMapper mapper, PrebidVersionProv
5552
5653 @ Override
5754 public Result <List <HttpRequest <BidRequest >>> makeHttpRequests (BidRequest request ) {
55+ final List <Imp > imps = request .getImp ();
5856 final List <Imp > modifiedImps = new ArrayList <>();
5957
60- String tagId = null ;
61- String placement = null ;
62-
58+ final ExtImpNexx360 firstExtImp ;
6359 try {
64- final List <Imp > imps = request .getImp ();
65- for (int i = 0 ; i < imps .size (); i ++) {
66- final Imp imp = imps .get (i );
67- if (i == 0 ) {
68- final ExtImpNexx360 extImp = parseImpExt (imp );
69- tagId = extImp .getTagId ();
70- placement = extImp .getPlacement ();
71- }
72- modifiedImps .add (modifyImp (imp ));
73- }
60+ firstExtImp = parseImpExt (imps .getFirst ());
7461 } catch (PreBidException e ) {
7562 return Result .withError (BidderError .badInput (e .getMessage ()));
7663 }
7764
65+ for (final Imp imp : imps ) {
66+ modifiedImps .add (modifyImp (imp ));
67+ }
68+
7869 final BidRequest modifiedRequest = makeRequest (request , modifiedImps );
79- final String url = makeUrl (tagId , placement );
70+ final String url = makeUrl (firstExtImp . getTagId (), firstExtImp . getPlacement () );
8071 return Result .withValue (BidderUtil .defaultRequest (modifiedRequest , url , mapper ));
8172 }
8273
@@ -89,12 +80,9 @@ private ExtImpNexx360 parseImpExt(Imp imp) {
8980 }
9081
9182 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" ));
83+ return imp .toBuilder ()
84+ .ext (mapper .mapper ().createObjectNode ().set (BIDDER_NAME , imp .getExt ().get ("bidder" )))
85+ .build ();
9886 }
9987
10088 private BidRequest makeRequest (BidRequest request , List <Imp > imps ) {
0 commit comments