Skip to content

Commit

Permalink
imds: Break out endpoint generation into new method and change to pas…
Browse files Browse the repository at this point in the history
…sing version as string rather than object.
  • Loading branch information
Timothy M. Ace committed Jul 3, 2023
1 parent 9b635b4 commit be7f8f9
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 15 deletions.
30 changes: 19 additions & 11 deletions src/main/java/org/prebid/server/bidder/imds/ImdsBidder.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ public class ImdsBidder implements Bidder<BidRequest> {
private final String prebidVersion;
private final JacksonMapper mapper;

public ImdsBidder(String endpointUrl, PrebidVersionProvider prebidVersionProvider, JacksonMapper mapper) {
public ImdsBidder(String endpointUrl, String prebidVersion, JacksonMapper mapper) {
this.endpointUrl = HttpUtil.validateUrl(Objects.requireNonNull(endpointUrl));
this.prebidVersion = Objects.requireNonNull(prebidVersionProvider.getNameVersionRecord());
this.prebidVersion = Objects.requireNonNull(prebidVersion);
this.mapper = Objects.requireNonNull(mapper);
}

Expand Down Expand Up @@ -83,16 +83,24 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest bidRequ
.ext(mapper.fillExtension(ExtRequest.empty(), ExtRequestImds.of(firstExtImp.getSeatId())))
.build();

return Result.of(Collections.singletonList(
return Result.of(
Collections.singletonList(
BidderUtil.defaultRequest(
outgoingRequest,
endpointUrl
.replaceAll("\\{\\{AccountID}}",
URLEncoder.encode(firstExtImp.getSeatId(), StandardCharsets.UTF_8))
.replaceAll("\\{\\{SourceId}}",
URLEncoder.encode(prebidVersion, StandardCharsets.UTF_8)),
mapper)),
errors);
outgoingRequest,
generateEndpointUrl(firstExtImp),
mapper
)
),
errors
);
}

private String generateEndpointUrl(ExtImpImds firstExtImp) {
String accountId = URLEncoder.encode(firstExtImp.getSeatId(), StandardCharsets.UTF_8);
String sourceId = URLEncoder.encode(prebidVersion, StandardCharsets.UTF_8);
return endpointUrl
.replaceAll("\\{\\{AccountID}}", accountId)
.replaceAll("\\{\\{SourceId}}", sourceId);
}

private ExtImpImds parseAndValidateExtImp(ObjectNode impExt) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ BidderDeps imdsBidderDeps(BidderConfigurationProperties imdsConfigurationPropert
return BidderDepsAssembler.forBidder(BIDDER_NAME)
.withConfig(imdsConfigurationProperties)
.usersyncerCreator(UsersyncerCreator.create(externalUrl))
.bidderCreator(config -> new ImdsBidder(config.getEndpoint(), prebidVersionProvider, mapper))
.bidderCreator(config -> new ImdsBidder(config.getEndpoint(), prebidVersionProvider.getNameVersionRecord(), mapper))
.assemble();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
public class ImdsBidderTest extends VertxTest {

private static final String ENDPOINT_URL = "https://pbs.endpoint.com/{{AccountID}}?src={{SourceId}}&adapter=imds";
private static final String PREBID_VERSION = "pbs-java/0.1.2";

private ImdsBidder imdsBidder;

Expand All @@ -55,14 +56,13 @@ public class ImdsBidderTest extends VertxTest {

@Before
public void setUp() {
when(prebidVersionProvider.getNameVersionRecord()).thenReturn("pbs-java/0.1.2");
imdsBidder = new ImdsBidder(ENDPOINT_URL, prebidVersionProvider, jacksonMapper);
imdsBidder = new ImdsBidder(ENDPOINT_URL, PREBID_VERSION, jacksonMapper);
}

@Test
public void creationShouldFailOnInvalidEndpointUrl() {
assertThatIllegalArgumentException().isThrownBy(
() -> new ImdsBidder("invalid_url", prebidVersionProvider, jacksonMapper));
() -> new ImdsBidder("invalid_url", PREBID_VERSION, jacksonMapper));
}

@Test
Expand Down

0 comments on commit be7f8f9

Please sign in to comment.