Skip to content

Commit 1a6ed48

Browse files
committed
Update return types and rename object deletion
1 parent b4af659 commit 1a6ed48

16 files changed

Lines changed: 90 additions & 37 deletions

File tree

src/it/java/io/weaviate/integration/AliasITest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,12 @@ public void test_aliasLifecycle() throws IOException {
4848
.returns(nsColsonBaker, Alias::collection);
4949

5050
// Act: delete Bono alias
51-
client.alias.delete("Bono");
51+
var deleted = client.alias.delete("Bono");
52+
Assertions.assertThat(deleted).as("object was deleted").isTrue();
5253

53-
// Assert
54+
// Act: delete non-existent alias
55+
deleted = client.alias.delete("Bono");
56+
Assertions.assertThat(deleted).as("object wasn't deleted").isFalse();
5457
var paulHewsonAliases = client.alias.list(all -> all.collection(nsPaulHewson));
5558
Assertions.assertThat(paulHewsonAliases)
5659
.as("no aliases once Bono is deleted")

src/it/java/io/weaviate/integration/DataITest.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,16 @@ public void testCreateGetDelete() throws IOException {
7979
.as("lastUpdateTimeUnix").isNotNull();
8080
});
8181

82-
artists.data.delete(id);
82+
var deleted = artists.data.deleteById(id);
83+
Assertions.assertThat(deleted)
84+
.as("object was deleted").isTrue();
8385
Assertions.assertThat(artists.data.exists(id))
8486
.as("object not exists after deletion").isFalse();
87+
88+
deleted = artists.data.deleteById(id);
89+
// TODO: Change to isFalse() after fixed in Weaviate server
90+
Assertions.assertThat(deleted)
91+
.as("object wasn't deleted").isTrue();
8592
}
8693

8794
@Test

src/it/java/io/weaviate/integration/RbacITest.java

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -206,30 +206,54 @@ public void test_users_db() throws IOException {
206206
.extracting(Role::name)
207207
.doesNotContain(roleName);
208208

209-
client.users.db.activate(userId);
209+
var deactivated = client.users.db.deactivate(userId);
210+
Assertions.assertThat(deactivated)
211+
.as("user was deactivated")
212+
.isTrue();
213+
Assertions.assertThat(client.users.db.byName(userId)).get()
214+
.as("user is deactivated")
215+
.returns(false, DbUser::active);
216+
217+
deactivated = client.users.db.deactivate(userId);
218+
Assertions.assertThat(deactivated)
219+
.as("user was already deactivated")
220+
.isFalse();
221+
222+
var activated = client.users.db.activate(userId);
223+
Assertions.assertThat(activated)
224+
.as("user was activated")
225+
.isTrue();
210226
Assertions.assertThat(client.users.db.byName(userId)).get()
211227
.as("user is activated")
212228
.returns(true, DbUser::active);
213229

230+
activated = client.users.db.activate(userId);
231+
Assertions.assertThat(activated)
232+
.as("user was already active")
233+
.isFalse();
234+
214235
apiKey = client.users.db.rotateKey(userId);
215236
assertValidApiKey(apiKey);
216237

217-
client.users.db.deactivate(userId);
218-
Assertions.assertThat(client.users.db.byName(userId)).get()
219-
.as("user is deactivated")
220-
.returns(false, DbUser::active);
221-
222238
var all = client.users.db.list(users -> users.includeLastUsedAt(true));
223239
Assertions.assertThat(all)
224240
.as("list users include lastUsedTime ")
225241
.allMatch(user -> user.lastUsedAt() != null)
226242
.extracting(DbUser::id)
227243
.contains(userId, ADMIN_USER);
228244

229-
client.users.db.delete(userId);
245+
var deleted = client.users.db.delete(userId);
246+
Assertions.assertThat(deleted)
247+
.as("user was deleted")
248+
.isTrue();
230249
Assertions.assertThat(client.users.db.byName(userId))
231250
.as("user is deleted")
232251
.isEmpty();
252+
253+
deleted = client.users.db.delete(userId);
254+
Assertions.assertThat(deleted)
255+
.as("user was already deleted")
256+
.isFalse();
233257
}
234258

235259
@Test

src/main/java/io/weaviate/client6/v1/api/alias/DeleteAliasRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import java.util.Collections;
44

5+
import io.weaviate.client6.v1.internal.rest.BooleanEndpoint;
56
import io.weaviate.client6.v1.internal.rest.Endpoint;
6-
import io.weaviate.client6.v1.internal.rest.SimpleEndpoint;
77

88
public record DeleteAliasRequest(String alias) {
9-
public final static Endpoint<DeleteAliasRequest, Void> _ENDPOINT = SimpleEndpoint.sideEffect(
9+
public final static Endpoint<DeleteAliasRequest, Boolean> _ENDPOINT = BooleanEndpoint.noBody(
1010
__ -> "DELETE",
1111
request -> "/aliases/" + request.alias,
1212
__ -> Collections.emptyMap());

src/main/java/io/weaviate/client6/v1/api/alias/WeaviateAliasClient.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,11 @@ public void update(String alias, String newTargetCollection) throws IOException
117117
* @throws IOException in case the request was not sent successfully
118118
* due to a malformed request, a networking error
119119
* or the server being unavailable.
120+
*
121+
* @return {@code true} if the alias was deleted, {@code false} if there was no
122+
* alias to delete.
120123
*/
121-
public void delete(String alias) throws IOException {
122-
this.restTransport.performRequest(new DeleteAliasRequest(alias), DeleteAliasRequest._ENDPOINT);
124+
public boolean delete(String alias) throws IOException {
125+
return this.restTransport.performRequest(new DeleteAliasRequest(alias), DeleteAliasRequest._ENDPOINT);
123126
}
124127
}

src/main/java/io/weaviate/client6/v1/api/alias/WeaviateAliasClientAsync.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public CompletableFuture<Void> update(String alias, String newTargetCollection)
9494
*
9595
* @return A future holding the server's response.
9696
*/
97-
public CompletableFuture<Void> delete(String alias) {
97+
public CompletableFuture<Boolean> delete(String alias) {
9898
return this.restTransport.performRequestAsync(new DeleteAliasRequest(alias), DeleteAliasRequest._ENDPOINT);
9999
}
100100
}

src/main/java/io/weaviate/client6/v1/api/collections/data/DeleteObjectRequest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
import io.weaviate.client6.v1.api.collections.CollectionHandleDefaults;
44
import io.weaviate.client6.v1.internal.orm.CollectionDescriptor;
5+
import io.weaviate.client6.v1.internal.rest.BooleanEndpoint;
56
import io.weaviate.client6.v1.internal.rest.Endpoint;
6-
import io.weaviate.client6.v1.internal.rest.SimpleEndpoint;
77

88
public record DeleteObjectRequest(String uuid) {
99

10-
public static final Endpoint<DeleteObjectRequest, Void> endpoint(
10+
public static final Endpoint<DeleteObjectRequest, Boolean> endpoint(
1111
CollectionDescriptor<?> collection,
1212
CollectionHandleDefaults defaults) {
13-
return SimpleEndpoint.sideEffect(
13+
return BooleanEndpoint.noBody(
1414
request -> "DELETE",
1515
request -> "/objects/" + collection.collectionName() + "/" + request.uuid,
1616
request -> defaults.queryParameters());

src/main/java/io/weaviate/client6/v1/api/collections/data/WeaviateDataClient.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,15 @@ public void replace(String uuid,
9797
ReplaceObjectRequest.endpoint(collection, defaults));
9898
}
9999

100-
public void delete(String uuid) throws IOException {
101-
this.restTransport.performRequest(new DeleteObjectRequest(uuid),
100+
/**
101+
* Delete an object by its UUID.
102+
*
103+
* @param uuid The UUID of the object to delete.
104+
* @return {@code true} if the object was deleted, {@code false} if there was no object to delete.
105+
* @throws IOException in case the request was not sent successfully.
106+
*/
107+
public boolean deleteById(String uuid) throws IOException {
108+
return this.restTransport.performRequest(new DeleteObjectRequest(uuid),
102109
DeleteObjectRequest.endpoint(collection, defaults));
103110
}
104111

src/main/java/io/weaviate/client6/v1/api/collections/data/WeaviateDataClientAsync.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public CompletableFuture<Void> replace(String uuid,
9292
ReplaceObjectRequest.endpoint(collection, defaults));
9393
}
9494

95-
public CompletableFuture<Void> delete(String uuid) {
95+
public CompletableFuture<Boolean> delete(String uuid) {
9696
return this.restTransport.performRequestAsync(new DeleteObjectRequest(uuid),
9797
DeleteObjectRequest.endpoint(collection, defaults));
9898
}

src/main/java/io/weaviate/client6/v1/api/rbac/users/ActivateDbUserRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
import java.util.Collections;
44

5+
import io.weaviate.client6.v1.internal.rest.BooleanEndpoint;
56
import io.weaviate.client6.v1.internal.rest.Endpoint;
6-
import io.weaviate.client6.v1.internal.rest.SimpleEndpoint;
77
import io.weaviate.client6.v1.internal.rest.UrlEncoder;
88

99
public record ActivateDbUserRequest(String userId) {
1010

11-
public static final Endpoint<ActivateDbUserRequest, Void> _ENDPOINT = SimpleEndpoint.sideEffect(
11+
public static final Endpoint<ActivateDbUserRequest, Boolean> _ENDPOINT = BooleanEndpoint.noBody(
1212
__ -> "POST",
1313
request -> "/users/db/" + UrlEncoder.encodeValue(((ActivateDbUserRequest) request).userId) + "/activate",
1414
request -> Collections.emptyMap())

0 commit comments

Comments
 (0)