Skip to content

Commit

Permalink
fix review
Browse files Browse the repository at this point in the history
  • Loading branch information
EvgeniiMunin committed Feb 7, 2025
1 parent 1e23162 commit 9d6642a
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.iab.openrtb.request.BidRequest;
import io.vertx.core.Future;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.prebid.server.analytics.reporter.greenbids.model.ExplorationResult;
import org.prebid.server.analytics.reporter.greenbids.model.Ortb2ImpExtResult;
import org.prebid.server.auction.model.AuctionContext;
Expand Down Expand Up @@ -39,6 +40,7 @@
import org.prebid.server.settings.model.Account;
import org.prebid.server.settings.model.AccountHooksConfiguration;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -190,35 +192,39 @@ private Tags toAnalyticsTags(List<AnalyticsResult> analyticsResults) {

private List<Result> toResults(List<AnalyticsResult> analyticsResults) {
return analyticsResults.stream()
.flatMap(analyticsResult -> toResult(analyticsResult).stream())
.map(this::toResult)
.flatMap(Collection::stream)
.toList();
}

private List<Result> toResult(AnalyticsResult analyticsResult) {
return analyticsResult.getValues().entrySet().stream()
.map(entry -> {
final String impId = entry.getKey();
final Ortb2ImpExtResult ortb2ImpExtResult = entry.getValue();

final List<String> bidders = Optional.ofNullable(ortb2ImpExtResult)
.map(Ortb2ImpExtResult::getGreenbids)
.map(ExplorationResult::getKeptInAuction)
.orElse(Collections.emptyMap())
.keySet().stream().toList();

final ObjectNode objectNode = toObjectNode(entry);

return (Result) ResultImpl.of(
analyticsResult.getStatus(),
objectNode,
AppliedToImpl.builder()
.impIds(Collections.singletonList(impId))
.bidders(bidders)
.build());
})
.map(entry -> toResult(analyticsResult.getStatus(), entry))
.toList();
}

private Result toResult(String status, Map.Entry<String, Ortb2ImpExtResult> entry) {
final String impId = entry.getKey();
final Ortb2ImpExtResult ortb2ImpExtResult = entry.getValue();
final List<String> removedBidders = Optional.ofNullable(ortb2ImpExtResult)
.map(Ortb2ImpExtResult::getGreenbids)
.map(ExplorationResult::getKeptInAuction)
.map(Map::entrySet)
.stream()
.flatMap(Collection::stream)
.filter(e -> BooleanUtils.isNotTrue(e.getValue()))
.map(Map.Entry::getKey)
.toList();

return ResultImpl.of(
status,
toObjectNode(entry),
AppliedToImpl.builder()
.impIds(Collections.singletonList(impId))
.bidders(removedBidders.isEmpty() ? null: removedBidders)
.build());
}

private ObjectNode toObjectNode(Map.Entry<String, Ortb2ImpExtResult> values) {
return values != null ? mapper.valueToTree(values) : null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.collect.Streams;
import com.iab.openrtb.request.Banner;
import com.iab.openrtb.request.BidRequest;
import com.iab.openrtb.request.Device;
Expand Down Expand Up @@ -43,6 +42,7 @@
import org.prebid.server.hooks.execution.model.HookExecutionOutcome;
import org.prebid.server.hooks.execution.model.Stage;
import org.prebid.server.hooks.execution.model.StageExecutionOutcome;
import org.prebid.server.hooks.v1.analytics.Activity;
import org.prebid.server.hooks.v1.analytics.Result;
import org.prebid.server.hooks.v1.analytics.Tags;
import org.prebid.server.json.EncodeException;
Expand All @@ -58,6 +58,7 @@
import org.prebid.server.settings.model.Account;
import org.prebid.server.settings.model.AccountAnalyticsConfig;
import org.prebid.server.util.HttpUtil;
import org.prebid.server.util.StreamUtil;
import org.prebid.server.version.PrebidVersionProvider;
import org.prebid.server.vertx.httpclient.HttpClient;
import org.prebid.server.vertx.httpclient.model.HttpClientResponse;
Expand Down Expand Up @@ -226,7 +227,8 @@ private Map<String, Ortb2ImpExtResult> extractAnalyticsResultFromAnalyticsTag(Au
.map(Tags::activities)
.flatMap(Collection::stream)
.filter(activity -> "greenbids-filter".equals(activity.name()))
.flatMap(activity -> activity.results().stream())
.map(Activity::results)
.flatMap(Collection::stream)
.map(this::parseAnalyticsResult)
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(
Expand All @@ -238,13 +240,12 @@ private Map<String, Ortb2ImpExtResult> extractAnalyticsResultFromAnalyticsTag(Au
private Map<String, Ortb2ImpExtResult> parseAnalyticsResult(Result result) {
return Optional.ofNullable(result)
.map(Result::values)
.filter(valuesNode -> valuesNode.fieldNames().hasNext())
.map(valuesNode -> Streams.stream(valuesNode.fields())
.collect(Collectors.toMap(
Map.Entry::getKey,
entry -> parseOrtb2ImpExtResult(entry.getValue()),
(existing, replacement) -> existing)))
.orElseGet(Collections::emptyMap);
.stream()
.flatMap(valuesNode -> StreamUtil.asStream(valuesNode.fields()))
.collect(Collectors.toMap(
Map.Entry::getKey,
entry -> parseOrtb2ImpExtResult(entry.getValue()),
(existing, replacement) -> existing));
}

private Ortb2ImpExtResult parseOrtb2ImpExtResult(JsonNode node) {
Expand Down

0 comments on commit 9d6642a

Please sign in to comment.