Extract method to read result set
This commit is contained in:
		
							parent
							
								
									38c9fe9cb5
								
							
						
					
					
						commit
						11a06d6b33
					
				| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 AsamK
						AsamK