Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 1 addition & 18 deletions src/main/java/org/prebid/server/bidder/mobkoi/MobkoiBidder.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@
import org.prebid.server.util.BidderUtil;
import org.prebid.server.util.HttpUtil;

import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
Expand Down Expand Up @@ -60,11 +58,9 @@ public Result<List<HttpRequest<BidRequest>>> makeHttpRequests(BidRequest bidRequ
return Result.withError(BidderError.badInput(e.getMessage()));
}

final String selectedEndpointUrl = resolveEndpoint(extImpMobkoi.getAdServerBaseUrl());

return Result.withValue(BidderUtil.defaultRequest(
modifyBidRequest(bidRequest, modifiedFirstImp),
selectedEndpointUrl,
endpointUrl,
mapper));
}

Expand All @@ -91,19 +87,6 @@ private Imp modifyImp(Imp firstImp, ExtImpMobkoi extImpMobkoi) {
+ "req.imp[0].ext.Bidder.placementId");
}

// url is already validated with `bidder-params` json schema
private String resolveEndpoint(String customUri) {
if (customUri == null) {
return endpointUrl;
}
try {
final URI uri = new URI(customUri);
return uri.resolve("/bid").toString();
} catch (IllegalArgumentException | URISyntaxException e) {
return endpointUrl;
}
}

private static BidRequest modifyBidRequest(BidRequest bidRequest, Imp modifiedFirstImp) {
final User user = modifyUser(bidRequest.getUser());
final List<Imp> imps = updateFirstImpWith(bidRequest.getImp(), modifiedFirstImp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,4 @@ public class ExtImpMobkoi {

@JsonProperty("placementId")
String placementId;

@JsonProperty("adServerBaseUrl")
String adServerBaseUrl;
}
5 changes: 0 additions & 5 deletions src/main/resources/static/bidder-params/mobkoi.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,6 @@
"placementId": {
"type": "string",
"description": "Placement ID"
},
"adServerBaseUrl": {
"type": "string",
"description": "Mobkoi's ad server url",
"pattern": "^https?://[^.]+\\.mobkoi\\.com$"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public void makeHttpRequestsShouldReturnErrorWhenRequestHasInvalidExtImpression(
@Test
public void makeHttpRequestsShouldReturnErrorWhenRequestHasMissingTagIdAndPlacementId() {
// given
final ObjectNode mobkoiExt = impExt(null, null);
final ObjectNode mobkoiExt = impExt(null);
final BidRequest bidRequest = givenBidRequest(impBuilder -> impBuilder.ext(mobkoiExt));

// when
Expand All @@ -79,7 +79,7 @@ public void makeHttpRequestsShouldReturnErrorWhenRequestHasMissingTagIdAndPlacem
@Test
public void makeHttpRequestsShouldAddPlacementIdOnlyInFirstImpressionTagId() {
// given
final ObjectNode mobkoiExt = impExt("pid", null);
final ObjectNode mobkoiExt = impExt("pid");
final Imp givenImp1 = givenImp(impBuilder -> impBuilder.ext(mobkoiExt));
final Imp givenImp2 = givenImp(identity());
final BidRequest bidRequest = BidRequest.builder().imp(asList(givenImp1, givenImp2)).build();
Expand All @@ -95,48 +95,6 @@ public void makeHttpRequestsShouldAddPlacementIdOnlyInFirstImpressionTagId() {
.containsExactly("pid", null);
}

@Test
public void makeHttpRequestsShouldUseConstructorEndpointWhenNoCustomEndpointIsDefinedInMobkoiExtension() {
// given
final ObjectNode mobkoiExt = impExt("pid", null);
final BidRequest bidRequest = givenBidRequest(impBuilder -> impBuilder.ext(mobkoiExt));

// when
final Result<List<HttpRequest<BidRequest>>> results = target.makeHttpRequests(bidRequest);

// then
assertThat(results.getValue()).extracting(HttpRequest::getUri).containsExactly("https://test.endpoint.com/bid");
assertThat(results.getErrors()).isEmpty();
}

@Test
public void makeHttpRequestsShouldConstructWithDefaultEndpointWhenTheCustomURLIsInvalidInMobkoiExtension() {
// given
final ObjectNode mobkoiExt = impExt("pid", "invalid URI");
final BidRequest bidRequest = givenBidRequest(impBuilder -> impBuilder.ext(mobkoiExt));

// when
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);

// then
assertThat(result.getValue()).extracting(HttpRequest::getUri).containsExactly("https://test.endpoint.com/bid");
assertThat(result.getErrors()).isEmpty();
}

@Test
public void makeHttpRequestsShouldUseCustomEndpointWhenDefinedInMobkoiExtension() {
// given
final ObjectNode mobkoiExt = impExt("pid", "https://custom.endpoint.com");
final BidRequest bidRequest = givenBidRequest(impBuilder -> impBuilder.ext(mobkoiExt));

// when
final Result<List<HttpRequest<BidRequest>>> result = target.makeHttpRequests(bidRequest);

// then
assertThat(result.getValue()).extracting(HttpRequest::getUri).containsExactly("https://custom.endpoint.com/bid");
assertThat(result.getErrors()).isEmpty();
}

@Test
public void makeHttpRequestsShouldOverrideUserExtAndSetConsent() {
// given
Expand Down Expand Up @@ -235,11 +193,11 @@ private static BidRequest givenBidRequest(
}

private static Imp givenImp(UnaryOperator<Imp.ImpBuilder> impCustomizer) {
return impCustomizer.apply(Imp.builder().id("imp_id").ext(impExt("placementIdValue", null))).build();
return impCustomizer.apply(Imp.builder().id("imp_id").ext(impExt("placementIdValue"))).build();
}

private static ObjectNode impExt(String placementId, String adServerBaseUrl) {
return mapper.valueToTree(ExtPrebid.of(null, ExtImpMobkoi.of(placementId, adServerBaseUrl)));
private static ObjectNode impExt(String placementId) {
return mapper.valueToTree(ExtPrebid.of(null, ExtImpMobkoi.of(placementId)));
}

private static BidResponse givenBidResponse(UnaryOperator<Bid.BidBuilder> bidCustomizer) {
Expand Down
Loading