44import com .fasterxml .jackson .core .JsonProcessingException ;
55import com .fasterxml .jackson .core .type .TypeReference ;
66import com .fasterxml .jackson .databind .JsonNode ;
7- import com .fasterxml .jackson .databind .node .ArrayNode ;
87import com .fasterxml .jackson .databind .node .ObjectNode ;
98import com .iab .openrtb .request .BidRequest ;
109import com .iab .openrtb .request .Imp ;
11- import com .iab .openrtb .request .User ;
1210import com .iab .openrtb .response .Bid ;
1311import com .iab .openrtb .response .BidResponse ;
1412import com .iab .openrtb .response .SeatBid ;
2624import org .prebid .server .json .DecodeException ;
2725import org .prebid .server .json .JacksonMapper ;
2826import org .prebid .server .proto .openrtb .ext .ExtPrebid ;
29- import org .prebid .server .proto .openrtb .ext .request .ConsentedProvidersSettings ;
30- import org .prebid .server .proto .openrtb .ext .request .ExtUser ;
3127import org .prebid .server .proto .openrtb .ext .request .improvedigital .ExtImpImprovedigital ;
3228import org .prebid .server .proto .openrtb .ext .response .BidType ;
3329import org .prebid .server .util .BidderUtil ;
3430import org .prebid .server .util .HttpUtil ;
35- import org .prebid .server .util .ObjectUtil ;
3631
3732import java .util .ArrayList ;
3833import java .util .Collection ;
@@ -50,10 +45,6 @@ public class ImprovedigitalBidder implements Bidder<BidRequest> {
5045 private static final TypeReference <ExtPrebid <?, ExtImpImprovedigital >> IMPROVEDIGITAL_EXT_TYPE_REFERENCE =
5146 new TypeReference <>() {
5247 };
53- private static final String CONSENT_PROVIDERS_SETTINGS_OUT_KEY = "consented_providers_settings" ;
54- private static final String CONSENTED_PROVIDERS_KEY = "consented_providers" ;
55- private static final String REGEX_SPLIT_STRING_BY_DOT = "\\ ." ;
56-
5748 private static final String IS_REWARDED_INVENTORY_FIELD = "is_rewarded_inventory" ;
5849 private static final JsonPointer IS_REWARDED_INVENTORY_POINTER
5950 = JsonPointer .valueOf ("/prebid/" + IS_REWARDED_INVENTORY_FIELD );
@@ -89,46 +80,6 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest request
8980 return Result .withValues (httpRequests );
9081 }
9182
92- private ExtUser getAdditionalConsentProvidersUserExt (ExtUser extUser ) {
93- final String consentedProviders = ObjectUtil .getIfNotNull (
94- ObjectUtil .getIfNotNull (extUser , ExtUser ::getConsentedProvidersSettings ),
95- ConsentedProvidersSettings ::getConsentedProviders );
96-
97- if (StringUtils .isBlank (consentedProviders )) {
98- return extUser ;
99- }
100-
101- final String [] consentedProvidersParts = StringUtils .split (consentedProviders , "~" );
102- final String consentedProvidersPart = consentedProvidersParts .length > 1 ? consentedProvidersParts [1 ] : null ;
103- if (StringUtils .isBlank (consentedProvidersPart )) {
104- return extUser ;
105- }
106-
107- return fillExtUser (extUser , consentedProvidersPart .split (REGEX_SPLIT_STRING_BY_DOT ));
108- }
109-
110- private ExtUser fillExtUser (ExtUser extUser , String [] arrayOfSplitString ) {
111- final JsonNode consentProviderSettingJsonNode ;
112- try {
113- consentProviderSettingJsonNode = customJsonNode (arrayOfSplitString );
114- } catch (IllegalArgumentException e ) {
115- throw new PreBidException (e .getMessage ());
116- }
117-
118- return mapper .fillExtension (extUser , consentProviderSettingJsonNode );
119- }
120-
121- private JsonNode customJsonNode (String [] arrayOfSplitString ) {
122- final Integer [] integers = mapper .mapper ().convertValue (arrayOfSplitString , Integer [].class );
123- final ArrayNode arrayNode = mapper .mapper ().createArrayNode ();
124- for (Integer integer : integers ) {
125- arrayNode .add (integer );
126- }
127-
128- return mapper .mapper ().createObjectNode ().set (CONSENT_PROVIDERS_SETTINGS_OUT_KEY ,
129- mapper .mapper ().createObjectNode ().set (CONSENTED_PROVIDERS_KEY , arrayNode ));
130- }
131-
13283 private ExtImpImprovedigital parseImpExt (Imp imp ) {
13384 try {
13485 return mapper .mapper ().convertValue (imp .getExt (), IMPROVEDIGITAL_EXT_TYPE_REFERENCE ).getBidder ();
@@ -149,12 +100,8 @@ private static Imp updateImp(Imp imp) {
149100 }
150101
151102 private HttpRequest <BidRequest > resolveRequest (BidRequest bidRequest , Imp imp , Integer publisherId ) {
152- final User user = bidRequest .getUser ();
153103 final BidRequest modifiedRequest = bidRequest .toBuilder ()
154104 .imp (Collections .singletonList (updateImp (imp )))
155- .user (user != null
156- ? user .toBuilder ().ext (getAdditionalConsentProvidersUserExt (user .getExt ())).build ()
157- : null )
158105 .build ();
159106
160107 final String pathPrefix = publisherId != null && publisherId > 0
0 commit comments