core: optional connection id in RcvFileInfo

This commit is contained in:
JRoberts
2023-01-23 16:09:39 +04:00
parent 5d12217eab
commit 72d817c937
3 changed files with 8 additions and 15 deletions
+2 -2
View File
@@ -3291,9 +3291,9 @@ cancelRcvFileTransfer user ft@RcvFileTransfer {fileId, fileStatus, rcvFileInline
updateRcvFileStatus db ft FSCancelled
deleteRcvFileChunks db ft
when (isNothing rcvFileInline) $ case fileStatus of
RFSAccepted RcvFileInfo {connId, agentConnId} ->
RFSAccepted RcvFileInfo {connId = Just connId, agentConnId = Just agentConnId} ->
deleteAgentConnectionAsync' user connId agentConnId
RFSConnected RcvFileInfo {connId, agentConnId} ->
RFSConnected RcvFileInfo {connId = Just connId, agentConnId = Just agentConnId} ->
deleteAgentConnectionAsync' user connId agentConnId
_ -> pure ()
+2 -10
View File
@@ -2743,7 +2743,7 @@ createRcvGroupFileTransfer db userId GroupMember {groupId, groupMemberId, localD
pure RcvFileTransfer {fileId, fileInvitation = f, fileStatus = RFSNew, rcvFileInline, senderDisplayName = c, chunkSize, cancelled = False, grpMemberId = Just groupMemberId}
getRcvFileTransfer :: DB.Connection -> User -> Int64 -> ExceptT StoreError IO RcvFileTransfer
getRcvFileTransfer db user@User {userId} fileId = do
getRcvFileTransfer db User {userId} fileId = do
rftRow <-
ExceptT . firstRow id (SERcvFileNotFound fileId) $
DB.query
@@ -2782,15 +2782,7 @@ getRcvFileTransfer db user@User {userId} fileId = do
RcvFileTransfer {fileId, fileInvitation, fileStatus, rcvFileInline, senderDisplayName, chunkSize, cancelled, grpMemberId}
rfi fileInfo = maybe (throwError $ SERcvFileInvalid fileId) pure =<< rfi_ fileInfo
rfi_ = \case
(Just filePath, Just connId, Just agentConnId, _, _, _, _) -> pure $ Just RcvFileInfo {filePath, connId, agentConnId}
(Just filePath, Nothing, Nothing, Just contactId, _, _, True) -> do
Contact {activeConn = Connection {connId, agentConnId}} <- getContact db user contactId
pure $ Just RcvFileInfo {filePath, connId, agentConnId}
(Just filePath, Nothing, Nothing, _, Just groupId, Just groupMemberId, True) -> do
getGroupMember db user groupId groupMemberId >>= \case
GroupMember {activeConn = Just Connection {connId, agentConnId}} ->
pure $ Just RcvFileInfo {filePath, connId, agentConnId}
_ -> pure Nothing
(Just filePath, connId, agentConnId, _, _, _, _) -> pure $ Just RcvFileInfo {filePath, connId, agentConnId}
_ -> pure Nothing
cancelled = fromMaybe False cancelled_
+4 -3
View File
@@ -1481,8 +1481,8 @@ instance ToJSON RcvFileStatus where
data RcvFileInfo = RcvFileInfo
{ filePath :: FilePath,
connId :: Int64,
agentConnId :: AgentConnId
connId :: Maybe Int64,
agentConnId :: Maybe AgentConnId
}
deriving (Eq, Show, Generic)
@@ -1494,7 +1494,8 @@ liveRcvFileTransferConnId RcvFileTransfer {fileStatus} = case fileStatus of
RFSConnected fi -> acId fi
_ -> Nothing
where
acId RcvFileInfo {agentConnId = AgentConnId cId} = Just cId
acId RcvFileInfo {agentConnId = Just (AgentConnId cId)} = Just cId
acId _ = Nothing
newtype AgentConnId = AgentConnId ConnId
deriving (Eq, Show)