Browse Source

Re-add missing senderName & recipientName to output of API call GET /chat/messages

split-DB
catbref 4 years ago
parent
commit
51bfd49e25
  1. 19
      src/main/java/org/qortal/data/chat/ChatMessage.java
  2. 23
      src/main/java/org/qortal/repository/hsqldb/HSQLDBChatRepository.java

19
src/main/java/org/qortal/data/chat/ChatMessage.java

@ -17,9 +17,14 @@ public class ChatMessage {
/* Address of sender */ /* Address of sender */
private String sender; private String sender;
// Not always present
private String senderName;
/* Address of recipient (if any) */ /* Address of recipient (if any) */
private String recipient; // can be null private String recipient; // can be null
private String recipientName;
private byte[] data; private byte[] data;
private boolean isText; private boolean isText;
@ -32,13 +37,15 @@ public class ChatMessage {
} }
// For repository use // For repository use
public ChatMessage(long timestamp, int txGroupId, byte[] senderPublicKey, String sender, public ChatMessage(long timestamp, int txGroupId, byte[] senderPublicKey, String sender, String senderName,
String recipient, byte[] data, boolean isText, boolean isEncrypted) { String recipient, String recipientName, byte[] data, boolean isText, boolean isEncrypted) {
this.timestamp = timestamp; this.timestamp = timestamp;
this.txGroupId = txGroupId; this.txGroupId = txGroupId;
this.senderPublicKey = senderPublicKey; this.senderPublicKey = senderPublicKey;
this.sender = sender; this.sender = sender;
this.senderName = senderName;
this.recipient = recipient; this.recipient = recipient;
this.recipientName = recipientName;
this.data = data; this.data = data;
this.isText = isText; this.isText = isText;
this.isEncrypted = isEncrypted; this.isEncrypted = isEncrypted;
@ -60,10 +67,18 @@ public class ChatMessage {
return this.sender; return this.sender;
} }
public String getSenderName() {
return this.senderName;
}
public String getRecipient() { public String getRecipient() {
return this.recipient; return this.recipient;
} }
public String getRecipientName() {
return this.recipientName;
}
public byte[] getData() { public byte[] getData() {
return this.data; return this.data;
} }

23
src/main/java/org/qortal/repository/hsqldb/HSQLDBChatRepository.java

@ -32,9 +32,12 @@ public class HSQLDBChatRepository implements ChatRepository {
StringBuilder sql = new StringBuilder(1024); StringBuilder sql = new StringBuilder(1024);
sql.append("SELECT created_when, tx_group_id, creator, sender, recipient, data, is_text, is_encrypted " sql.append("SELECT created_when, tx_group_id, creator, sender, SenderNames.name, "
+ "recipient, RecipientNames.name, data, is_text, is_encrypted "
+ "FROM ChatTransactions " + "FROM ChatTransactions "
+ "JOIN Transactions USING (signature) "); + "JOIN Transactions USING (signature) "
+ "LEFT OUTER JOIN Names AS SenderNames ON SenderNames.owner = sender "
+ "LEFT OUTER JOIN Names AS RecipientNames ON RecipientNames.owner = recipient ");
// WHERE clauses // WHERE clauses
@ -89,13 +92,15 @@ public class HSQLDBChatRepository implements ChatRepository {
int groupId = resultSet.getInt(2); int groupId = resultSet.getInt(2);
byte[] senderPublicKey = resultSet.getBytes(3); byte[] senderPublicKey = resultSet.getBytes(3);
String sender = resultSet.getString(4); String sender = resultSet.getString(4);
String recipient = resultSet.getString(5); String senderName = resultSet.getString(5);
byte[] data = resultSet.getBytes(6); String recipient = resultSet.getString(6);
boolean isText = resultSet.getBoolean(7); String recipientName = resultSet.getString(7);
boolean isEncrypted = resultSet.getBoolean(8); byte[] data = resultSet.getBytes(8);
boolean isText = resultSet.getBoolean(9);
ChatMessage chatMessage = new ChatMessage(timestamp, groupId, senderPublicKey, sender, boolean isEncrypted = resultSet.getBoolean(10);
recipient, data, isText, isEncrypted);
ChatMessage chatMessage = new ChatMessage(timestamp, groupId, senderPublicKey, sender, senderName,
recipient, recipientName, data, isText, isEncrypted);
chatMessages.add(chatMessage); chatMessages.add(chatMessage);
} while (resultSet.next()); } while (resultSet.next());

Loading…
Cancel
Save