Skip to content

Commit 3b5dcc4

Browse files
authored
feat: support single document deletion (#9)
https://coveord.atlassian.net/browse/CDX-433
1 parent bb98f67 commit 3b5dcc4

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

src/main/java/com/coveo/pushapiclient/PlatformClient.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,17 @@ public HttpResponse<String> pushDocument(String sourceId, String documentJSON, S
126126
return this.httpClient.send(request, HttpResponse.BodyHandlers.ofString());
127127
}
128128

129-
public void deleteDocument(String sourceId, String documentId, Boolean deleteChildren) {
130-
// TODO
129+
public HttpResponse<String> deleteDocument(String sourceId, String documentId, Boolean deleteChildren) throws IOException, InterruptedException {
130+
String[] headers = this.getHeaders(this.getAuthorizationHeader(), this.getContentTypeApplicationJSONHeader());
131+
URI uri = URI.create(this.getBasePushURL() + String.format("/sources/%s/documents?documentId=%s&deleteChildren=%s", sourceId, documentId, deleteChildren));
132+
133+
HttpRequest request = HttpRequest.newBuilder()
134+
.headers(headers)
135+
.DELETE()
136+
.uri(uri)
137+
.build();
138+
139+
return this.httpClient.send(request, HttpResponse.BodyHandlers.ofString());
131140
}
132141

133142
public HttpResponse<String> createFileContainer() throws IOException, InterruptedException {

src/main/java/com/coveo/pushapiclient/Source.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ public HttpResponse<String> addOrUpdateDocument(String sourceId, DocumentBuilder
4040
return this.platformClient.pushDocument(sourceId, docBuilder.marshal(), docBuilder.getDocument().uri);
4141
}
4242

43+
public HttpResponse<String> deleteDocument(String sourceId, String documentId, Boolean deleteChildren) throws IOException, InterruptedException {
44+
return this.platformClient.deleteDocument(sourceId, documentId, deleteChildren);
45+
}
46+
4347
public HttpResponse<String> batchUpdateDocuments(String sourceId, BatchUpdate batchUpdate) throws IOException, InterruptedException {
4448
HttpResponse<String> resFileContainer = this.platformClient.createFileContainer();
4549
FileContainer fileContainer = new Gson().fromJson(resFileContainer.body(), FileContainer.class);

src/main/java/com/coveo/testlocally/TestingLocally.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public static void testPushDocument(String sourceId, Source source) {
3636
put("my_field_3", 1234);
3737
put("my_field_4", new String[]{"a", "b", "c"});
3838
}});
39-
DocumentBuilder docWithSecurity = new DocumentBuilder("https://perdu.com/2", "the title 2")
39+
DocumentBuilder docWithSecurity = new DocumentBuilder("https://perdu.com/2", "the title 2")
4040
.withData("this is searchable also")
4141
.withAllowAnonymousUsers(false)
4242
.withAllowedPermissions(new UserSecurityIdentityBuilder("[email protected]"))
@@ -52,10 +52,18 @@ public static void testPushDocument(String sourceId, Source source) {
5252
}
5353

5454
try {
55-
source.addOrUpdateDocument(sourceId, simpleDoc);
56-
source.addOrUpdateDocument(sourceId, docWithMetadata);
57-
source.batchUpdateDocuments(sourceId, new BatchUpdate(docToAdd, docToRemove));
58-
source.addOrUpdateDocument(sourceId, docWithSecurity);
55+
HttpResponse<String> resAddSimpleDoc = source.addOrUpdateDocument(sourceId, simpleDoc);
56+
HttpResponse<String> resAddOrUpdateMetadata = source.addOrUpdateDocument(sourceId, docWithMetadata);
57+
HttpResponse<String> resDelete = source.deleteDocument(sourceId, simpleDoc.getDocument().uri, true);
58+
HttpResponse<String> resBatch = source.batchUpdateDocuments(sourceId, new BatchUpdate(docToAdd, docToRemove));
59+
60+
61+
System.out.println(resAddSimpleDoc.statusCode());
62+
System.out.println(resAddOrUpdateMetadata.statusCode());
63+
System.out.println(resDelete.statusCode());
64+
System.out.println(resBatch.statusCode());
65+
66+
5967
} catch (IOException | InterruptedException e) {
6068
System.out.println(e);
6169
}

0 commit comments

Comments
 (0)