Skip to content

Commit

Permalink
Done with request section
Browse files Browse the repository at this point in the history
  • Loading branch information
SuprPhatAnon committed Apr 17, 2024
1 parent f4929a9 commit 7a3e223
Showing 1 changed file with 33 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.node.TextNode;
import com.google.common.base.Strings;
import com.iab.openrtb.request.App;
import com.iab.openrtb.request.BidRequest;
import com.iab.openrtb.request.Imp;
import com.iab.openrtb.request.Site;
import com.iab.openrtb.response.Bid;
import com.iab.openrtb.response.BidResponse;
import com.iab.openrtb.response.SeatBid;
Expand All @@ -31,6 +33,7 @@
import org.prebid.server.proto.openrtb.ext.response.ExtBidPrebidVideo;
import org.prebid.server.util.BidderUtil;
import org.prebid.server.util.HttpUtil;
import org.prebid.server.util.ObjectUtil;

import java.util.ArrayList;
import java.util.Collection;
Expand Down Expand Up @@ -60,41 +63,29 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest bidRequ
final List<Imp> imps = new ArrayList<>();
final List<BidderError> errors = new ArrayList<>();
final List<HttpRequest<BidRequest>> httpRequests = new ArrayList<>();
if (bidRequest.getSite() != null) {
for (Imp imp : bidRequest.getImp()) {
try {
final ExtImpConsumable impExt = parseImpExt(imp);

if (impExt.getSiteId() != 0 && impExt.getNetworkId() != 0 && impExt.getUnitId() != 0) {
imps.add(modifyImp(imp, impExt));
}
} catch (PreBidException e) {
errors.add(BidderError.badInput(e.getMessage()));
String placementId = null;
for (Imp imp : bidRequest.getImp()) {
try {
final ExtImpConsumable impExt = parseImpExt(imp);
if (!isImpValid(bidRequest.getSite(), bidRequest.getApp(), impExt)) {
continue;
}
}
final BidRequest modRequest = modifyBidRequest(bidRequest, imps);
final String finalUrl = this.endpointUrl + SITE_URI_PATH;
httpRequests.add(BidderUtil.defaultRequest(modRequest, resolveHeaders(), finalUrl, mapper));
if (imps.isEmpty()) {
return Result.withErrors(errors);
}
} else if (bidRequest.getApp() != null) {
for (Imp imp : bidRequest.getImp()) {
try {
final ExtImpConsumable impExt = parseImpExt(imp);

if (!Strings.isNullOrEmpty(impExt.getPlacementId())) {
final Imp modImp = modifyImp(imp, impExt);
final BidRequest modRequest = modifyBidRequest(bidRequest, Collections.singletonList(modImp));
final String finalUrl = this.endpointUrl + APP_URI_PATH + impExt.getPlacementId();
httpRequests.add(BidderUtil.defaultRequest(modRequest, resolveHeaders(), finalUrl, mapper));
}
} catch (PreBidException e) {
errors.add(BidderError.badInput(e.getMessage()));
if (Strings.isNullOrEmpty(placementId) && !Strings.isNullOrEmpty(impExt.getPlacementId())) {
placementId = impExt.getPlacementId();
}

imps.add(modifyImp(imp, impExt));

} catch (PreBidException e) {
errors.add(BidderError.badInput(e.getMessage()));
}
}

if (imps.isEmpty()) {
return Result.withErrors(errors);
}
final BidRequest modRequest = modifyBidRequest(bidRequest, imps);
final String finalUrl = constructUri(placementId);
httpRequests.add(BidderUtil.defaultRequest(modRequest, resolveHeaders(), finalUrl, mapper));
return Result.of(httpRequests, errors);
}

Expand All @@ -106,6 +97,12 @@ private ExtImpConsumable parseImpExt(Imp imp) {
}
}

private boolean isImpValid(Site site, App app, ExtImpConsumable impExt) {
return ((app != null && !Strings.isNullOrEmpty(impExt.getPlacementId()))
|| (site != null && impExt.getSiteId() != 0 && impExt.getNetworkId() != 0 && impExt.getUnitId() != 0));

}

private Imp modifyImp(Imp imp, ExtImpConsumable impExt) {
final UpdateResult<ObjectNode> impExtUpdateResult = modifyImpExt(imp, impExt);

Expand Down Expand Up @@ -137,6 +134,11 @@ private BidRequest modifyBidRequest(BidRequest bidRequest, List<Imp> imps) {
return bidRequest.toBuilder().imp(imps).build();
}

private String constructUri(String placementId) {
final String uri = Strings.isNullOrEmpty(placementId) ? SITE_URI_PATH : (APP_URI_PATH + placementId);
return this.endpointUrl + uri;
}

private static MultiMap resolveHeaders() {
return HttpUtil.headers().add(HttpUtil.X_OPENRTB_VERSION_HEADER, OPENRTB_VERSION);
}
Expand Down

0 comments on commit 7a3e223

Please sign in to comment.