Skip to content

Commit

Permalink
Merge branch 'master' into fix-timeouts
Browse files Browse the repository at this point in the history
# Conflicts:
#	src/main/java/org/prebid/server/spring/config/ServiceConfiguration.java
  • Loading branch information
And1sS committed Oct 11, 2021
2 parents ef5b231 + 1f317d7 commit e7b616d
Show file tree
Hide file tree
Showing 139 changed files with 900 additions and 1,977 deletions.
15 changes: 7 additions & 8 deletions src/main/java/org/prebid/server/auction/BidResponseCreator.java
Original file line number Diff line number Diff line change
Expand Up @@ -688,11 +688,10 @@ private ExtBidResponse toExtBidResponse(List<BidderResponseInfo> bidderResponseI

final ExtResponseDebug extResponseDebug = toExtResponseDebug(
bidderResponseInfos, auctionContext, cacheResult, debugEnabled);
final Map<String, List<ExtBidderError>> errors =
toExtBidderErrors(bidderResponseInfos, auctionContext, cacheResult, videoStoredDataResult, bidErrors);
final Map<String, List<ExtBidderError>> warnings = debugEnabled
? toExtBidderWarnings(auctionContext)
: null;
final Map<String, List<ExtBidderError>> errors = toExtBidderErrors(
bidderResponseInfos, auctionContext, cacheResult, videoStoredDataResult, bidErrors);
final Map<String, List<ExtBidderError>> warnings = toExtBidderWarnings(auctionContext);

final Map<String, Integer> responseTimeMillis = toResponseTimes(bidderResponseInfos, cacheResult);

return ExtBidResponse.builder()
Expand Down Expand Up @@ -722,9 +721,9 @@ private ExtResponseDebug toExtResponseDebug(List<BidderResponseInfo> bidderRespo
auctionContext.getTxnLog()) : null;
final ExtDebugTrace extDebugTrace = deepDebugLog.isDeepDebugEnabled() ? toExtDebugTrace(deepDebugLog) : null;

return httpCalls == null && bidRequest == null && extDebugPgmetrics == null && extDebugTrace == null
? null
: ExtResponseDebug.of(httpCalls, bidRequest, extDebugPgmetrics, extDebugTrace);
return ObjectUtils.anyNotNull(httpCalls, bidRequest, extDebugPgmetrics, extDebugTrace)
? ExtResponseDebug.of(httpCalls, bidRequest, extDebugPgmetrics, extDebugTrace)
: null;
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package org.prebid.server.bidder.interactiveoffers;

import com.fasterxml.jackson.databind.node.ObjectNode;
import com.iab.openrtb.request.BidRequest;
import com.iab.openrtb.response.BidResponse;
import com.iab.openrtb.response.SeatBid;
import io.vertx.core.http.HttpMethod;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.prebid.server.bidder.Bidder;
import org.prebid.server.bidder.model.BidderBid;
import org.prebid.server.bidder.model.BidderError;
Expand Down Expand Up @@ -35,29 +37,30 @@ public InteractiveOffersBidder(String endpointUrl, JacksonMapper mapper) {

@Override
public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest request) {
final ObjectNode impExt = request.getImp().get(0).getExt();
final String resolvedPartnerId = StringUtils.defaultString(resolvePartnerId(impExt));
final String resolvedEndpointUrl = endpointUrl.replace("{{PartnerId}}", resolvedPartnerId);

try {
String partnerId = request.getImp().get(0).getExt().get("bidder").get("partnerId") + "";
if (partnerId.length() > 2) {
partnerId = partnerId.substring(1, partnerId.length() - 1);
}
return Result.withValue(HttpRequest.<BidRequest>builder()
.method(HttpMethod.POST)
.uri(endpointUrl.replace("{{PartnerId}}", partnerId))
.headers(HttpUtil.headers())
.payload(request)
.body(mapper.encode(request))
.build());
} catch (PreBidException e) {
return Result.withError(BidderError.badInput(e.getMessage()));
}
return Result.withValue(HttpRequest.<BidRequest>builder()
.method(HttpMethod.POST)
.uri(resolvedEndpointUrl)
.headers(HttpUtil.headers())
.payload(request)
.body(mapper.encode(request))
.build());
}

private static String resolvePartnerId(ObjectNode impExt) {
final String partnerId = impExt.at("/bidder/partnerId").asText();
final int partnerIdLength = StringUtils.length(partnerId);
return partnerIdLength > 2 ? partnerId.substring(1, partnerIdLength - 1) : partnerId;
}

@Override
public final Result<List<BidderBid>> makeBids(HttpCall<BidRequest> httpCall, BidRequest bidRequest) {
try {
final BidResponse bidResponse = mapper.decodeValue(httpCall.getResponse().getBody(), BidResponse.class);
return Result.of(extractBids(bidResponse), Collections.emptyList());
return Result.withValues(extractBids(bidResponse));
} catch (DecodeException | PreBidException e) {
return Result.withError(BidderError.badServerResponse(e.getMessage()));
}
Expand Down
59 changes: 55 additions & 4 deletions src/main/java/org/prebid/server/bidder/iqzone/IqzoneBidder.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
package org.prebid.server.bidder.iqzone;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.node.TextNode;
import com.iab.openrtb.request.BidRequest;
import com.iab.openrtb.request.Imp;
import com.iab.openrtb.response.BidResponse;
import com.iab.openrtb.response.SeatBid;
import io.vertx.core.http.HttpMethod;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.prebid.server.bidder.Bidder;
import org.prebid.server.bidder.model.BidderBid;
import org.prebid.server.bidder.model.BidderError;
Expand All @@ -15,9 +19,12 @@
import org.prebid.server.exception.PreBidException;
import org.prebid.server.json.DecodeException;
import org.prebid.server.json.JacksonMapper;
import org.prebid.server.proto.openrtb.ext.ExtPrebid;
import org.prebid.server.proto.openrtb.ext.request.iqzone.ExtImpIqzone;
import org.prebid.server.proto.openrtb.ext.response.BidType;
import org.prebid.server.util.HttpUtil;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
Expand All @@ -26,6 +33,10 @@

public class IqzoneBidder implements Bidder<BidRequest> {

private static final TypeReference<ExtPrebid<?, ExtImpIqzone>> IQZONE_EXT_TYPE_REFERENCE =
new TypeReference<ExtPrebid<?, ExtImpIqzone>>() {
};

private final JacksonMapper mapper;
private final String endpointUrl;

Expand All @@ -36,13 +47,53 @@ public IqzoneBidder(String endpointUrl, JacksonMapper mapper) {

@Override
public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest request) {
return Result.withValue(HttpRequest.<BidRequest>builder()
final List<HttpRequest<BidRequest>> httpRequests = new ArrayList<>();

for (Imp imp : request.getImp()) {
try {
final ExtImpIqzone extImpIqzone = parseImpExt(imp);
final Imp modifiedImp = modifyImp(imp, extImpIqzone);

httpRequests.add(makeHttpRequest(request, modifiedImp));
} catch (IllegalArgumentException e) {
return Result.withError(BidderError.badInput(e.getMessage()));
}
}

return Result.withValues(httpRequests);
}

private ExtImpIqzone parseImpExt(Imp imp) {
return mapper.mapper().convertValue(imp.getExt(), IQZONE_EXT_TYPE_REFERENCE).getBidder();
}

private Imp modifyImp(Imp imp, ExtImpIqzone impExt) {
final String placementId = impExt.getPlacementId();
final ObjectNode modifiedImpExtBidder = mapper.mapper().createObjectNode();

if (StringUtils.isNotEmpty(placementId)) {
modifiedImpExtBidder.set("placementId", TextNode.valueOf(placementId));
modifiedImpExtBidder.set("type", TextNode.valueOf("publisher"));
} else {
modifiedImpExtBidder.set("endpointId", TextNode.valueOf(impExt.getEndpointId()));
modifiedImpExtBidder.set("type", TextNode.valueOf("network"));
}

return imp.toBuilder()
.ext(mapper.mapper().createObjectNode().set("bidder", modifiedImpExtBidder))
.build();
}

private HttpRequest<BidRequest> makeHttpRequest(BidRequest request, Imp imp) {
final BidRequest outgoingRequest = request.toBuilder().imp(List.of(imp)).build();

return HttpRequest.<BidRequest>builder()
.method(HttpMethod.POST)
.uri(endpointUrl)
.payload(request)
.body(mapper.encode(request))
.headers(HttpUtil.headers())
.build());
.payload(outgoingRequest)
.body(mapper.encode(outgoingRequest))
.build();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package org.prebid.server.proto.openrtb.ext.request.iqzone;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Value;

@AllArgsConstructor(staticName = "of")
@Value
@Value(staticConstructor = "of")
public class ExtImpIqzone {

@JsonProperty("placementId")
String placementId;

@JsonProperty("endpointId")
String endpointId;
}
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ TimeoutResolver auctionTimeoutResolver(
}

@Bean
DebugResolver debugResolver(@Value("${debug.override-token:#{null}") String debugOverrideToken,
DebugResolver debugResolver(@Value("${debug.override-token:#{null}}") String debugOverrideToken,
BidderCatalog bidderCatalog) {
return new DebugResolver(bidderCatalog, debugOverrideToken);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler;
import org.prebid.server.spring.config.bidder.util.UsersyncerCreator;
import org.prebid.server.spring.env.YamlPropertySourceFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
Expand All @@ -23,27 +21,19 @@ public class AceexConfiguration {

private static final String BIDDER_NAME = "aceex";

@Value("${external-url}")
@NotBlank
private String externalUrl;

@Autowired
private JacksonMapper mapper;

@Autowired
@Qualifier("aceexConfigurationProperties")
private BidderConfigurationProperties configProperties;

@Bean("aceexConfigurationProperties")
@ConfigurationProperties("adapters.aceex")
BidderConfigurationProperties configurationProperties() {
return new BidderConfigurationProperties();
}

@Bean
BidderDeps aceexBidderDeps() {
BidderDeps aceexBidderDeps(BidderConfigurationProperties aceexConfigurationProperties,
@NotBlank @Value("${external-url}") String externalUrl,
JacksonMapper mapper) {

return BidderDepsAssembler.forBidder(BIDDER_NAME)
.withConfig(configProperties)
.withConfig(aceexConfigurationProperties)
.usersyncerCreator(UsersyncerCreator.create(externalUrl))
.bidderCreator(config -> new AceexBidder(config.getEndpoint(), mapper))
.assemble();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler;
import org.prebid.server.spring.config.bidder.util.UsersyncerCreator;
import org.prebid.server.spring.env.YamlPropertySourceFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
Expand All @@ -23,27 +21,19 @@ public class AcuityadsConfiguration {

private static final String BIDDER_NAME = "acuityads";

@Value("${external-url}")
@NotBlank
private String externalUrl;

@Autowired
private JacksonMapper mapper;

@Autowired
@Qualifier("acuityadsConfigurationProperties")
private BidderConfigurationProperties configProperties;

@Bean("acuityadsConfigurationProperties")
@ConfigurationProperties("adapters.acuityads")
BidderConfigurationProperties configurationProperties() {
return new BidderConfigurationProperties();
}

@Bean
BidderDeps acuityadsBidderDeps() {
BidderDeps acuityadsBidderDeps(BidderConfigurationProperties acuityadsConfigurationProperties,
@NotBlank @Value("${external-url}") String externalUrl,
JacksonMapper mapper) {

return BidderDepsAssembler.forBidder(BIDDER_NAME)
.withConfig(configProperties)
.withConfig(acuityadsConfigurationProperties)
.usersyncerCreator(UsersyncerCreator.create(externalUrl))
.bidderCreator(config -> new AcuityadsBidder(config.getEndpoint(), mapper))
.assemble();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler;
import org.prebid.server.spring.config.bidder.util.UsersyncerCreator;
import org.prebid.server.spring.env.YamlPropertySourceFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
Expand All @@ -23,27 +21,19 @@ public class AdagioConfiguration {

private static final String BIDDER_NAME = "adagio";

@Value("${external-url}")
@NotBlank
private String externalUrl;

@Autowired
private JacksonMapper mapper;

@Autowired
@Qualifier("adagioConfigurationProperties")
private BidderConfigurationProperties configProperties;

@Bean("adagioConfigurationProperties")
@ConfigurationProperties("adapters.adagio")
BidderConfigurationProperties configurationProperties() {
return new BidderConfigurationProperties();
}

@Bean
BidderDeps adagioBidderDeps() {
BidderDeps adagioBidderDeps(BidderConfigurationProperties adagioConfigurationProperties,
@NotBlank @Value("${external-url}") String externalUrl,
JacksonMapper mapper) {

return BidderDepsAssembler.forBidder(BIDDER_NAME)
.withConfig(configProperties)
.withConfig(adagioConfigurationProperties)
.usersyncerCreator(UsersyncerCreator.create(externalUrl))
.bidderCreator(config -> new AdagioBidder(config.getEndpoint(), mapper))
.assemble();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import org.prebid.server.spring.config.bidder.util.BidderDepsAssembler;
import org.prebid.server.spring.config.bidder.util.UsersyncerCreator;
import org.prebid.server.spring.env.YamlPropertySourceFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
Expand All @@ -23,28 +21,19 @@ public class AdfConfiguration {

private static final String BIDDER_NAME = "adf";

@Value("${external-url}")
@NotBlank
private String externalUrl;

@Autowired
private JacksonMapper mapper;

@Autowired
@Qualifier("adfConfigurationProperties")
private BidderConfigurationProperties configProperties;

@Bean("adfConfigurationProperties")
@ConfigurationProperties("adapters.adf")
BidderConfigurationProperties configurationProperties() {
return new BidderConfigurationProperties();
}

@Bean
BidderDeps adfBidderDeps() {
BidderDeps adfBidderDeps(BidderConfigurationProperties adfConfigurationProperties,
@NotBlank @Value("${external-url}") String externalUrl,
JacksonMapper mapper) {

return BidderDepsAssembler.forBidder(BIDDER_NAME)
.withConfig(configProperties)
.withConfig(adfConfigurationProperties)
.usersyncerCreator(UsersyncerCreator.create(externalUrl))
.bidderCreator(config -> new AdfBidder(config.getEndpoint(), mapper))
.assemble();
Expand Down
Loading

0 comments on commit e7b616d

Please sign in to comment.