core: send agent DEL events to view (#1832)

This commit is contained in:
JRoberts
2023-01-24 20:07:35 +04:00
committed by GitHub
parent b386346cf1
commit bc1d86e303
4 changed files with 31 additions and 2 deletions
+5
View File
@@ -2013,6 +2013,10 @@ expireChatItems user@User {userId} ttl sync = do
processAgentMessage :: forall m. ChatMonad m => ACorrId -> ConnId -> ACommand 'Agent -> m ()
processAgentMessage _ "" msg =
processAgentMessageNoConn msg `catchError` (toView . CRChatError Nothing)
processAgentMessage _ connId (DEL_RCVQ srv qId err_) =
toView $ CRAgentRcvQueueDeleted (AgentConnId connId) srv (AgentQueueId qId) err_
processAgentMessage _ connId DEL_CONN =
toView $ CRAgentConnDeleted (AgentConnId connId)
processAgentMessage corrId connId msg =
withStore' (`getUserByAConnId` AgentConnId connId) >>= \case
Just user -> processAgentMessageConn user corrId connId msg `catchError` (toView . CRChatError (Just user))
@@ -2025,6 +2029,7 @@ processAgentMessageNoConn = \case
DOWN srv conns -> serverEvent srv conns CRContactsDisconnected "disconnected"
UP srv conns -> serverEvent srv conns CRContactsSubscribed "connected"
SUSPENDED -> toView CRChatSuspended
DEL_USER agentUserId -> toView $ CRAgentUserDeleted agentUserId
_ -> pure ()
where
hostEvent = whenM (asks $ hostEvents . config) . toView