3232import java .util .ArrayList ;
3333import java .util .Collection ;
3434import java .util .Collections ;
35- import java .util .Iterator ;
3635import java .util .List ;
37- import java .util .Map ;
3836import java .util .Objects ;
3937import java .util .Optional ;
4038
@@ -58,21 +56,18 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest request
5856 String siteNetworkId = null ;
5957
6058 for (Imp imp : request .getImp ()) {
61- try {
62- final ExtImpSparteo bidderParams = parseExtImp (imp );
63-
64- if (siteNetworkId == null && bidderParams .getNetworkId () != null ) {
65- siteNetworkId = bidderParams .getNetworkId ();
59+ if (siteNetworkId == null ) {
60+ try {
61+ siteNetworkId = parseExtImp (imp ).getNetworkId ();
62+ } catch (PreBidException e ) {
63+ errors .add (BidderError .badInput (
64+ "ignoring imp id=%s, error processing ext: %s" .formatted (
65+ imp .getId (), e .getMessage ())));
6666 }
67-
68- final ObjectNode modifiedExt = modifyImpExt (imp );
69-
70- modifiedImps .add (imp .toBuilder ().ext (modifiedExt ).build ());
71- } catch (PreBidException e ) {
72- errors .add (BidderError .badInput (
73- "ignoring imp id=%s, error processing ext: %s" .formatted (
74- imp .getId (), e .getMessage ())));
7567 }
68+
69+ final ObjectNode modifiedExt = modifyImpExt (imp );
70+ modifiedImps .add (imp .toBuilder ().ext (modifiedExt ).build ());
7671 }
7772
7873 if (modifiedImps .isEmpty ()) {
@@ -99,24 +94,10 @@ private ExtImpSparteo parseExtImp(Imp imp) {
9994
10095 private static ObjectNode modifyImpExt (Imp imp ) {
10196 final ObjectNode modifiedImpExt = imp .getExt ().deepCopy ();
102- final JsonNode sparteoJsonNode = modifiedImpExt .get ("sparteo" );
103- final ObjectNode sparteoNode = sparteoJsonNode == null || !sparteoJsonNode .isObject ()
104- ? modifiedImpExt .putObject ("sparteo" )
105- : (ObjectNode ) sparteoJsonNode ;
106-
107- final JsonNode paramsJsonNode = sparteoNode .get ("params" );
108- final ObjectNode paramsNode = paramsJsonNode == null || !paramsJsonNode .isObject ()
109- ? sparteoNode .putObject ("params" )
110- : (ObjectNode ) paramsJsonNode ;
111-
97+ final ObjectNode sparteoNode = modifiedImpExt .putObject ("sparteo" );
11298 final JsonNode bidderJsonNode = modifiedImpExt .remove ("bidder" );
113- if (bidderJsonNode != null && bidderJsonNode .isObject ()) {
114- final Iterator <Map .Entry <String , JsonNode >> fields = bidderJsonNode .fields ();
115- while (fields .hasNext ()) {
116- final Map .Entry <String , JsonNode > field = fields .next ();
117- paramsNode .set (field .getKey (), field .getValue ());
118- }
119- }
99+ sparteoNode .set ("params" , bidderJsonNode );
100+
120101 return modifiedImpExt ;
121102 }
122103
@@ -179,6 +160,26 @@ private List<BidderBid> extractBids(BidResponse bidResponse, List<BidderError> e
179160 .toList ();
180161 }
181162
163+ private BidderBid toBidderBid (Bid bid , String currency , List <BidderError > errors ) {
164+ try {
165+ final BidType bidType = getBidType (bid );
166+
167+ final Integer mtype = switch (bidType ) {
168+ case banner -> 1 ;
169+ case video -> 2 ;
170+ case xNative -> 4 ;
171+ default -> null ;
172+ };
173+
174+ final Bid bidWithMtype = mtype != null ? bid .toBuilder ().mtype (mtype ).build () : bid ;
175+
176+ return BidderBid .of (bidWithMtype , bidType , currency );
177+ } catch (PreBidException e ) {
178+ errors .add (BidderError .badServerResponse (e .getMessage ()));
179+ return null ;
180+ }
181+ }
182+
182183 private BidType getBidType (Bid bid ) throws PreBidException {
183184 final BidType bidType = Optional .ofNullable (bid .getExt ())
184185 .map (ext -> ext .get ("prebid" ))
@@ -203,24 +204,4 @@ private ExtBidPrebid parseExtBidPrebid(JsonNode prebidNode) {
203204 return null ;
204205 }
205206 }
206-
207- private BidderBid toBidderBid (Bid bid , String currency , List <BidderError > errors ) {
208- try {
209- final BidType bidType = getBidType (bid );
210-
211- final Integer mtype = switch (bidType ) {
212- case banner -> 1 ;
213- case video -> 2 ;
214- case xNative -> 4 ;
215- default -> null ;
216- };
217-
218- final Bid bidWithMtype = mtype != null ? bid .toBuilder ().mtype (mtype ).build () : bid ;
219-
220- return BidderBid .of (bidWithMtype , bidType , currency );
221- } catch (PreBidException e ) {
222- errors .add (BidderError .badServerResponse (e .getMessage ()));
223- return null ;
224- }
225- }
226207}
0 commit comments