Skip to content

Commit 237765c

Browse files
Add topAnswers to Retrieve and Rank, closes #456
1 parent 4158413 commit 237765c

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

retrieve-and-rank/src/main/java/com/ibm/watson/developer_cloud/retrieve_and_rank/v1/RetrieveAndRank.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -334,15 +334,18 @@ public ServiceCall<Ranking> rank(final String rankerID, final File answers, Inte
334334
final JsonObject contentJson = new JsonObject();
335335
contentJson.addProperty(ANSWERS, ((topAnswers != null) && (topAnswers > 0)) ? topAnswers : 10);
336336

337-
final RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
338-
.addPart(Headers.of(HttpHeaders.CONTENT_DISPOSITION, "form-data; name=\"answer_data\""),
339-
RequestBody.create(HttpMediaType.BINARY_FILE, answers))
340-
.addPart(Headers.of(HttpHeaders.CONTENT_DISPOSITION, "form-data; name=\"answer_metadata\""),
341-
RequestBody.create(HttpMediaType.TEXT, contentJson.toString()))
342-
.build();
337+
okhttp3.MultipartBody.Builder builder = new MultipartBody.Builder()
338+
.setType(MultipartBody.FORM)
339+
.addPart(Headers.of(
340+
HttpHeaders.CONTENT_DISPOSITION, "form-data; name=\"answer_data\""),
341+
RequestBody.create(HttpMediaType.BINARY_FILE, answers)
342+
);
343+
344+
if (topAnswers != null)
345+
builder.addFormDataPart(ANSWERS, topAnswers.toString());
343346

344347
final String path = String.format(PATH_RANK, rankerID);
345-
final Request request = RequestBuilder.post(path).body(body).build();
348+
final Request request = RequestBuilder.post(path).body(builder.build()).build();
346349
return createServiceCall(request, ResponseConverterUtils.getObject(Ranking.class));
347350
}
348351

tests/src/test/java/com/ibm/watson/developer_cloud/retrieve_and_rank/v1/RetrieveAndRankTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,8 +509,10 @@ public void testRankerRank1() throws FileNotFoundException, InterruptedException
509509
Ranking serviceResponse = service.rank(ANY_RANKER_ID, rankFile, numToRank).execute();
510510
RecordedRequest request = server.takeRequest();
511511

512+
String body = request.getBody().readUtf8();
512513
assertEquals(RANK_URL, request.getPath());
513514
assertEquals("POST", request.getMethod());
515+
assertTrue(body.contains("Content-Disposition: form-data; name=\"answers\""));
514516
assertNotNull(request.getHeader(HttpHeaders.AUTHORIZATION));
515517
assertEquals(mockResponse, serviceResponse);
516518
assertEquals(request.getHeader(HttpHeaders.ACCEPT), HttpMediaType.APPLICATION_JSON);

0 commit comments

Comments
 (0)