Browse Source

Added optional "sender" filter to GET /chat/messages

pull/112/head
CalDescent 2 years ago
parent
commit
b4a736c5d2
  1. 2
      src/main/java/org/qortal/api/resource/ChatResource.java
  2. 2
      src/main/java/org/qortal/api/websocket/ChatMessagesWebSocket.java
  3. 2
      src/main/java/org/qortal/repository/ChatRepository.java
  4. 7
      src/main/java/org/qortal/repository/hsqldb/HSQLDBChatRepository.java

2
src/main/java/org/qortal/api/resource/ChatResource.java

@ -72,6 +72,7 @@ public class ChatResource {
@QueryParam("reference") String reference,
@QueryParam("chatreference") String chatReference,
@QueryParam("haschatreference") Boolean hasChatReference,
@QueryParam("sender") String sender,
@Parameter(ref = "limit") @QueryParam("limit") Integer limit,
@Parameter(ref = "offset") @QueryParam("offset") Integer offset,
@Parameter(ref = "reverse") @QueryParam("reverse") Boolean reverse) {
@ -107,6 +108,7 @@ public class ChatResource {
chatReferenceBytes,
hasChatReference,
involvingAddresses,
sender,
limit, offset, reverse);
} catch (DataException e) {
throw ApiExceptionFactory.INSTANCE.createException(request, ApiError.REPOSITORY_ISSUE, e);

2
src/main/java/org/qortal/api/websocket/ChatMessagesWebSocket.java

@ -49,6 +49,7 @@ public class ChatMessagesWebSocket extends ApiWebSocket {
null,
null,
null,
null,
null, null, null);
sendMessages(session, chatMessages);
@ -79,6 +80,7 @@ public class ChatMessagesWebSocket extends ApiWebSocket {
null,
null,
involvingAddresses,
null,
null, null, null);
sendMessages(session, chatMessages);

2
src/main/java/org/qortal/repository/ChatRepository.java

@ -15,7 +15,7 @@ public interface ChatRepository {
*/
public List<ChatMessage> getMessagesMatchingCriteria(Long before, Long after,
Integer txGroupId, byte[] reference, byte[] chatReferenceBytes, Boolean hasChatReference,
List<String> involving, Integer limit, Integer offset, Boolean reverse) throws DataException;
List<String> involving, String senderAddress, Integer limit, Integer offset, Boolean reverse) throws DataException;
public ChatMessage toChatMessage(ChatTransactionData chatTransactionData) throws DataException;

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

@ -24,7 +24,7 @@ public class HSQLDBChatRepository implements ChatRepository {
@Override
public List<ChatMessage> getMessagesMatchingCriteria(Long before, Long after, Integer txGroupId, byte[] referenceBytes,
byte[] chatReferenceBytes, Boolean hasChatReference, List<String> involving,
byte[] chatReferenceBytes, Boolean hasChatReference, List<String> involving, String senderAddress,
Integer limit, Integer offset, Boolean reverse) throws DataException {
// Check args meet expectations
if ((txGroupId != null && involving != null && !involving.isEmpty())
@ -74,6 +74,11 @@ public class HSQLDBChatRepository implements ChatRepository {
whereClauses.add("chat_reference IS NULL");
}
if (senderAddress != null) {
whereClauses.add("sender = ?");
bindParams.add(senderAddress);
}
if (txGroupId != null) {
whereClauses.add("tx_group_id = " + txGroupId); // int safe to use literally
whereClauses.add("recipient IS NULL");

Loading…
Cancel
Save