[LLC, Persistence] Use pagination options instead of single filter

Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
Sahil Kumar
2021-01-28 19:51:48 +05:30
parent 86a122aa23
commit db275bfa71
4 changed files with 7 additions and 7 deletions
@@ -489,7 +489,7 @@ class Channel {
}) async {
final cachedReplies = await _client.chatPersistenceClient?.getReplies(
parentId,
lessThan: options?.lessThan,
options: options,
);
if (cachedReplies != null && cachedReplies.isNotEmpty) {
state?.updateThreadInfo(parentId, cachedReplies);
@@ -20,7 +20,7 @@ abstract class ChatPersistenceClient {
/// Get stored replies by messageId
Future<List<Message>> getReplies(
String parentId, {
String lessThan,
PaginationParams options,
});
/// Get stored connection event
@@ -79,7 +79,7 @@ class MessageDao extends DatabaseAccessor<MoorChatDatabase>
/// [messages.parentId] with [parentId]
Future<List<Message>> getThreadMessagesByParentId(
String parentId, {
String lessThan,
PaginationParams options,
}) async {
final msgList = await Future.wait(await (select(messages).join([
innerJoin(users, messages.userId.equalsExp(users.id)),
@@ -89,8 +89,8 @@ class MessageDao extends DatabaseAccessor<MoorChatDatabase>
.map(_messageFromJoinRow)
.get());
if (lessThan != null) {
final lessThanIndex = msgList.indexWhere((m) => m.id == lessThan);
if (options?.lessThan != null) {
final lessThanIndex = msgList.indexWhere((m) => m.id == options.lessThan);
msgList.removeRange(lessThanIndex, msgList.length);
}
return msgList;
@@ -142,11 +142,11 @@ class StreamChatPersistenceClient extends ChatPersistenceClient {
@override
Future<List<Message>> getReplies(
String parentId, {
String lessThan,
PaginationParams options,
}) {
return _db.messageDao.getThreadMessagesByParentId(
parentId,
lessThan: lessThan,
options: options,
);
}