Skip to content

Commit 56c705d

Browse files
committed
Add default value for MergePrecedence
1 parent 44cf214 commit 56c705d

3 files changed

Lines changed: 41 additions & 4 deletions

File tree

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,17 @@ public static StoredDataResult<Profile> map(RowSet<Row> rowSet,
7575
final String fetchedAccountId = Objects.toString(row.getValue(0), null);
7676
final String id = Objects.toString(row.getValue(1), null);
7777
final String profileBodyAsString = Objects.toString(row.getValue(2), StringUtils.EMPTY);
78-
final String mergePrecedenceAsString = Objects.toString(row.getValue(3), StringUtils.EMPTY);
78+
final String mergePrecedenceAsString = Objects.toString(row.getValue(3), null);
7979
final String typeAsString = Objects.toString(row.getValue(4), StringUtils.EMPTY);
8080

8181
final JsonNode profileBody;
8282
final Profile.MergePrecedence mergePrecedence;
8383
final Profile.Type type;
8484
try {
8585
profileBody = ObjectMapperProvider.mapper().readTree(profileBodyAsString);
86-
mergePrecedence = Profile.MergePrecedence.valueOf(mergePrecedenceAsString.toUpperCase());
86+
mergePrecedence = mergePrecedenceAsString != null
87+
? Profile.MergePrecedence.valueOf(mergePrecedenceAsString.toUpperCase())
88+
: Profile.MergePrecedence.REQUEST;
8789
type = Profile.Type.valueOf(typeAsString.toUpperCase());
8890
} catch (IllegalArgumentException e) {
8991
logger.error("Profile with id={} has invalid value: type={}, mergePrecedence={} and will be ignored.",

src/main/java/org/prebid/server/settings/model/Profile.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,31 @@
33
import com.fasterxml.jackson.annotation.JsonAlias;
44
import com.fasterxml.jackson.annotation.JsonProperty;
55
import com.fasterxml.jackson.databind.JsonNode;
6+
import lombok.Builder;
67
import lombok.Value;
8+
import lombok.extern.jackson.Jacksonized;
79

8-
@Value(staticConstructor = "of")
10+
@Value
11+
@Builder
12+
@Jacksonized
913
public class Profile {
1014

1115
Type type;
1216

1317
@JsonProperty("mergeprecedence")
14-
MergePrecedence mergePrecedence;
18+
@Builder.Default
19+
MergePrecedence mergePrecedence = MergePrecedence.REQUEST;
1520

1621
JsonNode body;
1722

23+
public static Profile of(Type type, MergePrecedence mergePrecedence, JsonNode body) {
24+
return Profile.builder()
25+
.type(type)
26+
.mergePrecedence(mergePrecedence)
27+
.body(body)
28+
.build();
29+
}
30+
1831
public enum Type {
1932

2033
@JsonAlias("request")

src/test/java/org/prebid/server/settings/helper/DatabaseProfilesResultMapperTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,28 @@ public void mapShouldSkipProfileWithInvalidMergePrecedence() {
151151
assertThat(result.getErrors()).isEmpty();
152152
}
153153

154+
@Test
155+
public void mapShouldUseDefaultMergePrecedence() {
156+
// given
157+
givenRowSet(givenRow("accountId", "id1", "{}", null, "request"));
158+
159+
// when
160+
final StoredDataResult<Profile> result = DatabaseProfilesResultMapper.map(
161+
rowSet,
162+
"accountId",
163+
singleton("id1"),
164+
emptySet());
165+
166+
// then
167+
assertThat(result.getStoredIdToRequest())
168+
.containsExactly(entry("id1", Profile.of(
169+
Profile.Type.REQUEST,
170+
Profile.MergePrecedence.REQUEST,
171+
mapper.createObjectNode())));
172+
assertThat(result.getStoredIdToImp()).isEmpty();
173+
assertThat(result.getErrors()).isEmpty();
174+
}
175+
154176
@Test
155177
public void mapShouldSkipProfileWithInvalidType() {
156178
// given

0 commit comments

Comments
 (0)