mirror of
https://github.com/AsamK/signal-cli
synced 2025-08-28 18:10:38 +00:00
Extract method to read result set
This commit is contained in:
parent
38c9fe9cb5
commit
11a06d6b33
1 changed files with 16 additions and 14 deletions
|
@ -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<Integer> deviceIds) {}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue