From: AsamK Date: Wed, 17 Aug 2022 19:24:50 +0000 (+0200) Subject: Extract method to read result set X-Git-Tag: v0.11.0~13 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/11a06d6b33597edefe6159d35c9854aed06d9507 Extract method to read result set --- diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/sendLog/MessageSendLogStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/sendLog/MessageSendLogStore.java index 8a807fd5..54632395 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/sendLog/MessageSendLogStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/sendLog/MessageSendLogStore.java @@ -16,6 +16,7 @@ import org.whispersystems.signalservice.internal.push.SignalServiceProtos; import java.io.IOException; import java.sql.Connection; +import java.sql.ResultSet; import java.sql.SQLException; import java.time.Duration; import java.util.List; @@ -102,20 +103,7 @@ public class MessageSendLogStore implements AutoCloseable { statement.setLong(1, recipientId.id()); statement.setInt(2, deviceId); statement.setLong(3, timestamp); - try (var result = Utils.executeQueryForStream(statement, resultSet -> { - final var groupId = Optional.ofNullable(resultSet.getBytes("group_id")) - .map(GroupId::unknownVersion); - final SignalServiceProtos.Content content; - try { - content = SignalServiceProtos.Content.parseFrom(resultSet.getBinaryStream("content")); - } catch (IOException e) { - logger.warn("Failed to parse content from message send log", e); - return null; - } - final var contentHint = ContentHint.fromType(resultSet.getInt("content_hint")); - final var urgent = resultSet.getBoolean("urgent"); - return new MessageSendLogEntry(groupId, content, contentHint, urgent); - })) { + try (var result = Utils.executeQueryForStream(statement, this::getMessageSendLogEntryFromResultSet)) { return result.filter(Objects::nonNull) .filter(e -> !isSenderKey || e.groupId().isPresent()) .toList(); @@ -385,5 +373,19 @@ public class MessageSendLogStore implements AutoCloseable { } } + private MessageSendLogEntry getMessageSendLogEntryFromResultSet(ResultSet resultSet) throws SQLException { + final var groupId = Optional.ofNullable(resultSet.getBytes("group_id")).map(GroupId::unknownVersion); + final SignalServiceProtos.Content content; + try { + content = SignalServiceProtos.Content.parseFrom(resultSet.getBinaryStream("content")); + } catch (IOException e) { + logger.warn("Failed to parse content from message send log", e); + return null; + } + final var contentHint = ContentHint.fromType(resultSet.getInt("content_hint")); + final var urgent = resultSet.getBoolean("urgent"); + return new MessageSendLogEntry(groupId, content, contentHint, urgent); + } + private record RecipientDevices(RecipientId recipientId, List deviceIds) {} }