Skip to content

Commit e0a2af5

Browse files
committed
refactor: change SJMData entity key to UUID
1 parent 692d5c7 commit e0a2af5

File tree

3 files changed

+27
-18
lines changed

3 files changed

+27
-18
lines changed

src/main/java/cc/happyareabean/sjm/commands/SJMCommand.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -208,19 +208,15 @@ public void collectionCreate(BukkitCommandActor actor, @Named("collection") Stri
208208
public void collectionRemove(BukkitCommandActor actor, @Named("collection") String collectionName) {
209209
actor.reply(Constants.PREFIX.append(text("Removing collection %s...".formatted(collectionName), NamedTextColor.YELLOW)));
210210

211-
SimpleJoinMessage.getInstance().getDatabase()
212-
.deleteCollection(collectionName)
213-
.thenAsync((throwable) -> {
214-
215-
if (throwable != null) {
216-
actor.reply(Constants.PREFIX.append(text("The collection %s does not exist.".formatted(collectionName),
217-
NamedTextColor.RED)));
218-
return;
219-
}
211+
if (!SimpleJoinMessage.getInstance().getDatabase().getCollections().contains(collectionName)) {
212+
actor.reply(Constants.PREFIX.append(text("The collection %s does not exist.".formatted(collectionName),
213+
NamedTextColor.RED)));
214+
return;
215+
}
220216

221-
SimpleJoinMessage.getInstance().getDatabase().updateCollectionNames();
222-
actor.reply(Constants.PREFIX.append(text("Collection %s has been successfully removed.".formatted(collectionName), NamedTextColor.GREEN)));
223-
});
217+
SimpleJoinMessage.getInstance().getDatabase().deleteCollection(collectionName);
218+
SimpleJoinMessage.getInstance().getDatabase().updateCollectionNames();
219+
actor.reply(Constants.PREFIX.append(text("Collection %s has been successfully removed.".formatted(collectionName), NamedTextColor.GREEN)));
224220
}
225221

226222
@Subcommand({"collection update"})

src/main/java/cc/happyareabean/sjm/database/DatabaseManager.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@
2626
import java.util.Arrays;
2727
import java.util.List;
2828
import java.util.Optional;
29+
import java.util.UUID;
2930
import java.util.concurrent.CompletableFuture;
3031

3132
import static cc.happyareabean.sjm.utils.Util.BASE64_ENCODER;
3233

3334
@Getter
3435
public class DatabaseManager {
3536

36-
private final Repository<String, SJMData> data;
37+
private final Repository<UUID, SJMData> data;
3738
private final List<String> collections = new ArrayList<>();
3839

3940
public DatabaseManager() {
@@ -136,9 +137,19 @@ public CompletableFuture<Void> updateCollection(String name, String content) {
136137
});
137138
}
138139

139-
public Promise.AsyncEmptyResult deleteCollection(String name) {
140-
return SimpleJoinMessage.getInstance().getDatabase().getData()
141-
.deleteAsync(name);
140+
public void deleteCollection(String name) {
141+
SimpleJoinMessage.getInstance().getDatabase().getData()
142+
.findOneAsync(NQuery.predicate("$.collection_name == " + name))
143+
.thenAsync(optionalSJMData -> {
144+
145+
if (optionalSJMData.isEmpty()) {
146+
return;
147+
}
148+
149+
SJMData sjmData = optionalSJMData.get();
150+
151+
data.delete(sjmData);
152+
});
142153
}
143154

144155
public CompletableFuture<Optional<SJMData>> getRawContentFuture(String collectionName) {

src/main/java/cc/happyareabean/sjm/database/SJMData.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@
99
import lombok.EqualsAndHashCode;
1010
import lombok.NoArgsConstructor;
1111

12+
import java.util.UUID;
13+
1214
@EqualsAndHashCode(callSuper = true)
1315
@Data
1416
@NTable(name = "sjm_data")
1517
@NoArgsConstructor
1618
@Builder
17-
public class SJMData extends NEntity<String> {
19+
public class SJMData extends NEntity<UUID> {
1820

1921
@JsonProperty("content")
2022
private String content;
@@ -24,7 +26,7 @@ public class SJMData extends NEntity<String> {
2426
public String collectionName;
2527

2628
public SJMData(String collectionName, String content) {
27-
super(collectionName);
29+
super(UUID.randomUUID());
2830
this.collectionName = collectionName;
2931
this.content = content;
3032
}

0 commit comments

Comments
 (0)