[AB-xxx] fixing not removing component payloads for message embed cleanup job

This commit is contained in:
Sheldan
2021-08-09 00:40:36 +02:00
parent 168b4a52c8
commit cc55934ff2
4 changed files with 16 additions and 2 deletions

View File

@@ -168,6 +168,12 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
.stream() .stream()
.map(EmbeddedMessage::getEmbeddingMessageId) .map(EmbeddedMessage::getEmbeddingMessageId)
.collect(Collectors.toList()); .collect(Collectors.toList());
List<String> componentPayloadsToDelete = embeddedMessages
.stream()
.map(EmbeddedMessage::getDeletionComponentId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
List<CompletableFuture<Message>> reactionMessageFutures = messageService.retrieveMessages(reactionChannelMessages); List<CompletableFuture<Message>> reactionMessageFutures = messageService.retrieveMessages(reactionChannelMessages);
List<CompletableFuture<Message>> buttonMessageFutures = messageService.retrieveMessages(buttonChannelMessages); List<CompletableFuture<Message>> buttonMessageFutures = messageService.retrieveMessages(buttonChannelMessages);
CompletableFutureList<Message> reactionFutureList = new CompletableFutureList<>(reactionMessageFutures); CompletableFutureList<Message> reactionFutureList = new CompletableFutureList<>(reactionMessageFutures);
@@ -193,7 +199,7 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
if(throwable != null) { if(throwable != null) {
log.warn("Embedded message button clearing failed.", throwable); log.warn("Embedded message button clearing failed.", throwable);
} }
self.deleteEmbeddedMessages(embeddedMessagesHandled); self.deleteEmbeddedMessages(embeddedMessagesHandled, componentPayloadsToDelete);
}) })
.exceptionally(throwable -> { .exceptionally(throwable -> {
log.error("Failed to clean up embedded messages.", throwable); log.error("Failed to clean up embedded messages.", throwable);
@@ -231,8 +237,9 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
} }
@Transactional @Transactional
public void deleteEmbeddedMessages(List<Long> embeddedMessagesToDelete) { public void deleteEmbeddedMessages(List<Long> embeddedMessagesToDelete, List<String> componentPayloadsToDelete) {
messageEmbedPostManagementService.deleteEmbeddedMessagesViaId(embeddedMessagesToDelete); messageEmbedPostManagementService.deleteEmbeddedMessagesViaId(embeddedMessagesToDelete);
componentPayloadManagementService.deletePayloads(componentPayloadsToDelete);
} }
@Transactional @Transactional

View File

@@ -10,4 +10,5 @@ import java.util.List;
@Repository @Repository
public interface ComponentPayloadRepository extends JpaRepository<ComponentPayload, String> { public interface ComponentPayloadRepository extends JpaRepository<ComponentPayload, String> {
List<ComponentPayload> findByServerAndOrigin(AServer server, String buttonOrigin); List<ComponentPayload> findByServerAndOrigin(AServer server, String buttonOrigin);
void deleteByIdIn(List<String> componentIds);
} }

View File

@@ -58,6 +58,11 @@ public class ComponentPayloadManagementServiceBean implements ComponentPayloadMa
repository.deleteById(id); repository.deleteById(id);
} }
@Override
public void deletePayloads(List<String> ids) {
repository.deleteByIdIn(ids);
}
@Override @Override
public void deletePayload(ComponentPayload payload) { public void deletePayload(ComponentPayload payload) {
repository.delete(payload); repository.delete(payload);

View File

@@ -14,5 +14,6 @@ public interface ComponentPayloadManagementService {
Optional<ComponentPayload> findPayload(String id); Optional<ComponentPayload> findPayload(String id);
List<ComponentPayload> findPayloadsOfOriginInServer(String buttonOrigin, AServer server); List<ComponentPayload> findPayloadsOfOriginInServer(String buttonOrigin, AServer server);
void deletePayload(String id); void deletePayload(String id);
void deletePayloads(List<String> id);
void deletePayload(ComponentPayload payload); void deletePayload(ComponentPayload payload);
} }