|
|
|
@ -177,11 +177,11 @@ public class HSQLDBChatRepository implements ChatRepository {
|
|
|
|
|
|
|
|
|
|
private List<GroupChat> getActiveGroupChats(String address) throws DataException { |
|
|
|
|
// Find groups where address is a member and potential latest message details
|
|
|
|
|
String groupsSql = "SELECT group_id, group_name, latest_timestamp, sender, sender_name " |
|
|
|
|
String groupsSql = "SELECT group_id, group_name, latest_timestamp, sender, sender_name, signature " |
|
|
|
|
+ "FROM GroupMembers " |
|
|
|
|
+ "JOIN Groups USING (group_id) " |
|
|
|
|
+ "LEFT OUTER JOIN LATERAL(" |
|
|
|
|
+ "SELECT created_when AS latest_timestamp, sender, name AS sender_name " |
|
|
|
|
+ "SELECT created_when AS latest_timestamp, sender, name AS sender_name, signature " |
|
|
|
|
+ "FROM ChatTransactions " |
|
|
|
|
+ "JOIN Transactions USING (signature) " |
|
|
|
|
+ "LEFT OUTER JOIN Names AS SenderNames ON SenderNames.owner = sender " |
|
|
|
@ -205,8 +205,9 @@ public class HSQLDBChatRepository implements ChatRepository {
|
|
|
|
|
|
|
|
|
|
String sender = resultSet.getString(4); |
|
|
|
|
String senderName = resultSet.getString(5); |
|
|
|
|
byte[] signature = resultSet.getBytes(6); |
|
|
|
|
|
|
|
|
|
GroupChat groupChat = new GroupChat(groupId, groupName, timestamp, sender, senderName); |
|
|
|
|
GroupChat groupChat = new GroupChat(groupId, groupName, timestamp, sender, senderName, signature); |
|
|
|
|
groupChats.add(groupChat); |
|
|
|
|
} while (resultSet.next()); |
|
|
|
|
} |
|
|
|
@ -215,7 +216,7 @@ public class HSQLDBChatRepository implements ChatRepository {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// We need different SQL to handle group-less chat
|
|
|
|
|
String grouplessSql = "SELECT created_when, sender, SenderNames.name " |
|
|
|
|
String grouplessSql = "SELECT created_when, sender, SenderNames.name, signature " |
|
|
|
|
+ "FROM ChatTransactions " |
|
|
|
|
+ "JOIN Transactions USING (signature) " |
|
|
|
|
+ "LEFT OUTER JOIN Names AS SenderNames ON SenderNames.owner = sender " |
|
|
|
@ -228,15 +229,17 @@ public class HSQLDBChatRepository implements ChatRepository {
|
|
|
|
|
Long timestamp = null; |
|
|
|
|
String sender = null; |
|
|
|
|
String senderName = null; |
|
|
|
|
byte[] signature = null; |
|
|
|
|
|
|
|
|
|
if (resultSet != null) { |
|
|
|
|
// We found a recipient-less, group-less CHAT message, so report its details
|
|
|
|
|
timestamp = resultSet.getLong(1); |
|
|
|
|
sender = resultSet.getString(2); |
|
|
|
|
senderName = resultSet.getString(3); |
|
|
|
|
signature = resultSet.getBytes(4); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GroupChat groupChat = new GroupChat(0, null, timestamp, sender, senderName); |
|
|
|
|
GroupChat groupChat = new GroupChat(0, null, timestamp, sender, senderName, signature); |
|
|
|
|
groupChats.add(groupChat); |
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
throw new DataException("Unable to fetch active group chats from repository", e); |
|
|
|
@ -291,4 +294,4 @@ public class HSQLDBChatRepository implements ChatRepository {
|
|
|
|
|
return directChats; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |