diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 0627453fbf..c703d387ce 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -3605,7 +3605,7 @@ processAgentMessageConn user@User {userId} corrId agentConnId agentMessage = do withStore' $ \db -> updateIntroStatus db introId GMIntroSent sendHistory = when (isCompatibleRange (memberChatVRange' m) batchSendVRange) $ do - (errs, items) <- withStore' $ \db -> getGroupHistoryLastItems db user gInfo 100 + (errs, items) <- partitionEithers <$> withStore' (\db -> getGroupHistoryItems db user gInfo 100) (errs', events) <- collectForwardEvents items [] [] let errors = map ChatErrorStore errs <> errs' unless (null errors) $ toView $ CRChatErrors (Just user) errors diff --git a/src/Simplex/Chat/Store/Messages.hs b/src/Simplex/Chat/Store/Messages.hs index deb92aead0..f106a6be96 100644 --- a/src/Simplex/Chat/Store/Messages.hs +++ b/src/Simplex/Chat/Store/Messages.hs @@ -99,7 +99,7 @@ module Simplex.Chat.Store.Messages updateGroupSndStatus, getGroupSndStatuses, getGroupSndStatusCounts, - getGroupHistoryLastItems, + getGroupHistoryItems, ) where @@ -2080,11 +2080,11 @@ getGroupSndStatusCounts db itemId = |] (Only itemId) -getGroupHistoryLastItems :: DB.Connection -> User -> GroupInfo -> Int -> IO ([StoreError], [CChatItem 'CTGroup]) -getGroupHistoryLastItems db user@User {userId} GroupInfo {groupId} count = do +getGroupHistoryItems :: DB.Connection -> User -> GroupInfo -> Int -> IO [Either StoreError (CChatItem 'CTGroup)] +getGroupHistoryItems db user@User {userId} GroupInfo {groupId} count = do chatItemIds <- getLastItemIds_ -- use getGroupCIWithReactions to read reactions data - partitionEithers <$> mapM (runExceptT <$> getGroupChatItem db user groupId) chatItemIds + mapM (runExceptT . getGroupChatItem db user groupId) chatItemIds where getLastItemIds_ :: IO [ChatItemId] getLastItemIds_ =