2020import org .prebid .server .bidder .model .BidderError ;
2121import org .prebid .server .bidder .model .HttpRequest ;
2222import org .prebid .server .bidder .model .Result ;
23+ import org .prebid .server .bidder .sparteo .util .SparteoUtil ;
2324import org .prebid .server .exception .PreBidException ;
2425import org .prebid .server .json .DecodeException ;
2526import org .prebid .server .json .JacksonMapper ;
3233import org .prebid .server .util .HttpUtil ;
3334import org .apache .http .client .utils .URIBuilder ;
3435
35- import java .net .URI ;
3636import java .net .URISyntaxException ;
3737import java .util .ArrayList ;
3838import java .util .Collection ;
@@ -121,7 +121,7 @@ private Site modifySite(Site site, String networkId) {
121121 ? site .getPublisher ()
122122 : Publisher .builder ().build ();
123123
124- final Publisher modifiedPublisher = modifiedPublisher (originalPublisher , networkId );
124+ final Publisher modifiedPublisher = modifyPublisher (originalPublisher , networkId );
125125
126126 return site .toBuilder ().publisher (modifiedPublisher ).build ();
127127 }
@@ -135,12 +135,12 @@ private App modifyApp(App app, String networkId) {
135135 ? app .getPublisher ()
136136 : Publisher .builder ().build ();
137137
138- final Publisher modifiedPublisher = modifiedPublisher (originalPublisher , networkId );
138+ final Publisher modifiedPublisher = modifyPublisher (originalPublisher , networkId );
139139
140140 return app .toBuilder ().publisher (modifiedPublisher ).build ();
141141 }
142142
143- private Publisher modifiedPublisher (Publisher originalPublisher , String networkId ) {
143+ private Publisher modifyPublisher (Publisher originalPublisher , String networkId ) {
144144 final ExtPublisher originalExt = originalPublisher .getExt ();
145145 final ExtPublisher modifiedExt = originalExt == null
146146 ? ExtPublisher .empty ()
@@ -161,6 +161,7 @@ private ObjectNode ensureParamsNode(ExtPublisher extPublisher) {
161161 }
162162 final ObjectNode paramsNode = mapper .mapper ().createObjectNode ();
163163 extPublisher .addProperty ("params" , paramsNode );
164+
164165 return paramsNode ;
165166 }
166167
@@ -169,36 +170,44 @@ private String replaceMacros(Site site, App app, String networkId, List<BidderEr
169170 final String appDomain = resolveAppDomain (app );
170171 final String bundle = resolveBundle (app );
171172
172- if (site != null ) {
173- if (UNKNOWN_VALUE .equals (siteDomain )) {
174- errors .add (BidderError .badInput (
175- "Domain not found. Missing the site.domain or the site.page field" ));
176- }
173+ if (UNKNOWN_VALUE .equals (siteDomain )) {
174+ errors .add (BidderError .badInput (
175+ "Domain not found. Missing the site.domain or the site.page field" ));
177176 }
178177
179- if (app != null && UNKNOWN_VALUE .equals (bundle )) {
178+ if (UNKNOWN_VALUE .equals (bundle )) {
180179 errors .add (BidderError .badInput (
181180 "Bundle not found. Missing the app.bundle field." ));
182181 }
182+
183183 return resolveEndpoint (siteDomain , appDomain , networkId , bundle );
184184 }
185185
186186 private String resolveSiteDomain (Site site ) {
187- return Optional .ofNullable (site )
188- .map (s -> {
189- final String domain = normalizeHostname (s .getDomain ());
190- return StringUtils .isNotEmpty (domain ) ? domain : normalizeHostname (s .getPage ());
191- })
187+ if (site == null ) {
188+ return null ;
189+ }
190+
191+ return Optional .of (site )
192+ .map (Site ::getDomain )
193+ .map (SparteoUtil ::normalizeHostname )
192194 .filter (StringUtils ::isNotEmpty )
193- .orElse (site != null ? UNKNOWN_VALUE : null );
195+ .or (() -> Optional .ofNullable (site .getPage ())
196+ .map (SparteoUtil ::normalizeHostname )
197+ .filter (StringUtils ::isNotEmpty ))
198+ .orElse (UNKNOWN_VALUE );
194199 }
195200
196201 private String resolveAppDomain (App app ) {
197- return Optional .ofNullable (app )
202+ if (app == null ) {
203+ return null ;
204+ }
205+
206+ return Optional .of (app )
198207 .map (App ::getDomain )
199- .map (SparteoBidder ::normalizeHostname )
208+ .map (SparteoUtil ::normalizeHostname )
200209 .filter (StringUtils ::isNotEmpty )
201- .orElse (app != null ? UNKNOWN_VALUE : null );
210+ .orElse (UNKNOWN_VALUE );
202211 }
203212
204213 private String resolveBundle (App app ) {
@@ -207,41 +216,12 @@ private String resolveBundle(App app) {
207216 }
208217
209218 return Optional .ofNullable (app .getBundle ())
210- .filter (rawBundle -> ! rawBundle . isBlank () )
219+ .filter (StringUtils :: isNotBlank )
211220 .map (String ::trim )
212221 .filter (bundle -> !"null" .equalsIgnoreCase (bundle ))
213222 .orElse (UNKNOWN_VALUE );
214223 }
215224
216- public static String normalizeHostname (String host ) {
217- String h = StringUtils .trimToEmpty (host );
218- if (h .isEmpty ()) {
219- return "" ;
220- }
221-
222- String hostname = null ;
223- try {
224- hostname = new URI (h ).getHost ();
225- } catch (URISyntaxException e ) {
226- }
227-
228- if (StringUtils .isNotEmpty (hostname )) {
229- h = hostname ;
230- } else {
231- if (h .contains (":" )) {
232- h = StringUtils .substringBefore (h , ":" );
233- } else {
234- h = StringUtils .substringBefore (h , "/" );
235- }
236- }
237-
238- h = h .toLowerCase ();
239- h = StringUtils .removeStart (h , "www." );
240- h = StringUtils .removeEnd (h , "." );
241-
242- return "null" .equals (h ) ? "" : h ;
243- }
244-
245225 private String resolveEndpoint (String siteDomain , String appDomain , String networkId , String bundle ) {
246226 final String baseUrl = endpointUrl .replace (NETWORK_ID_MACRO , StringUtils .defaultString (networkId ));
247227
0 commit comments