Skip to content

Commit 0a9f904

Browse files
committed
Refactor
1 parent 0f3305f commit 0a9f904

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

src/main/java/org/prebid/server/auction/externalortb/ProfilesProcessor.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.prebid.server.exception.InvalidRequestException;
1313
import org.prebid.server.execution.timeout.Timeout;
1414
import org.prebid.server.execution.timeout.TimeoutFactory;
15-
import org.prebid.server.json.DecodeException;
1615
import org.prebid.server.json.JacksonMapper;
1716
import org.prebid.server.json.JsonMerger;
1817
import org.prebid.server.log.ConditionalLogger;
@@ -239,22 +238,13 @@ private <T> T applyProfiles(List<String> profilesIds,
239238
}
240239

241240
private ObjectNode mergeProfile(ObjectNode original, Profile profile, String profileId) {
242-
final ObjectNode profileBody = parseProfile(profile.getBody(), profileId);
243241
return switch (profile.getMergePrecedence()) {
244-
case REQUEST -> merge(original, profileBody, profileId);
245-
case PROFILE -> merge(profileBody, original, profileId);
242+
case REQUEST -> merge(original, profile.getBody(), profileId);
243+
case PROFILE -> merge(profile.getBody(), original, profileId);
246244
};
247245
}
248246

249-
private ObjectNode parseProfile(String body, String profileId) {
250-
try {
251-
return mapper.decodeValue(body, ObjectNode.class);
252-
} catch (DecodeException e) {
253-
throw new InvalidProfileException("Can't parse profile %s: %s".formatted(profileId, e.getMessage()));
254-
}
255-
}
256-
257-
private ObjectNode merge(ObjectNode takePrecedence, ObjectNode other, String profileId) {
247+
private ObjectNode merge(JsonNode takePrecedence, JsonNode other, String profileId) {
258248
try {
259249
return (ObjectNode) jsonMerger.merge(takePrecedence, other);
260250
} catch (InvalidRequestException e) {

src/main/java/org/prebid/server/settings/helper/DatabaseProfilesResultMapper.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package org.prebid.server.settings.helper;
22

3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.databind.JsonNode;
35
import io.vertx.sqlclient.Row;
46
import io.vertx.sqlclient.RowIterator;
57
import io.vertx.sqlclient.RowSet;
68
import org.prebid.server.exception.PreBidException;
9+
import org.prebid.server.json.ObjectMapperProvider;
710
import org.prebid.server.log.Logger;
811
import org.prebid.server.log.LoggerFactory;
912
import org.prebid.server.settings.model.Profile;
@@ -70,16 +73,18 @@ public static StoredDataResult<Profile> map(RowSet<Row> rowSet,
7073

7174
final String fetchedAccountId = Objects.toString(row.getValue(0), null);
7275
final String id = Objects.toString(row.getValue(1), null);
73-
final String profileBody = Objects.toString(row.getValue(2), null);
76+
final String profileBodyAsString = Objects.toString(row.getValue(2), null);
7477
final String mergePrecedenceAsString = Objects.toString(row.getValue(3), null);
7578
final String typeAsString = Objects.toString(row.getValue(4), null);
7679

77-
final Profile.Type type;
80+
final JsonNode profileBody;
7881
final Profile.MergePrecedence mergePrecedence;
82+
final Profile.Type type;
7983
try {
80-
type = Profile.Type.valueOf(typeAsString);
84+
profileBody = ObjectMapperProvider.mapper().readTree(profileBodyAsString);
8185
mergePrecedence = Profile.MergePrecedence.valueOf(mergePrecedenceAsString);
82-
} catch (IllegalArgumentException e) {
86+
type = Profile.Type.valueOf(typeAsString);
87+
} catch (IllegalArgumentException | JsonProcessingException e) {
8388
logger.error("Profile with id={} has invalid value: ''{}'' and will be ignored.",
8489
e, id, typeAsString);
8590
continue;
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.prebid.server.settings.model;
22

3+
import com.fasterxml.jackson.annotation.JsonAlias;
34
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import com.fasterxml.jackson.databind.JsonNode;
46
import lombok.Value;
57

68
@Value(staticConstructor = "of")
@@ -11,15 +13,23 @@ public class Profile {
1113
@JsonProperty("mergeprecedence")
1214
MergePrecedence mergePrecedence;
1315

14-
String body;
16+
JsonNode body;
1517

1618
public enum Type {
1719

18-
REQUEST, IMP
20+
@JsonAlias("request")
21+
REQUEST,
22+
23+
@JsonAlias("imp")
24+
IMP
1925
}
2026

2127
public enum MergePrecedence {
2228

23-
REQUEST, PROFILE
29+
@JsonAlias("request")
30+
REQUEST,
31+
32+
@JsonAlias("profile")
33+
PROFILE
2434
}
2535
}

0 commit comments

Comments
 (0)