refactor with RecordWildCards (#181)

This commit is contained in:
Evgeny Poberezkin
2021-08-22 13:19:38 +01:00
committed by GitHub
parent cda02a3b30
commit 26b0edabfc
5 changed files with 10 additions and 7 deletions

View File

@@ -9,6 +9,7 @@
{-# LANGUAGE NumericUnderscores #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TupleSections #-}
@@ -357,7 +358,8 @@ sendMessage' c connId msg =
previousMsgHash,
agentMessage = A_MSG msg
}
msgData = SndMsgData {internalId, internalSndId, internalTs, msgBody, internalHash = C.sha256Hash msgBody, previousMsgHash}
internalHash = C.sha256Hash msgBody
msgData = SndMsgData {..}
createSndMsg st connId msgData
pure internalId
@@ -555,7 +557,7 @@ processSMPTransmission c@AgentClient {subQ} (srv, rId, cmd) = do
let integrity = checkMsgIntegrity prevExtSndId (fst sender) prevRcvMsgHash externalPrevSndHash
recipient = (unId internalId, internalTs)
msgMeta = MsgMeta {integrity, recipient, sender, broker}
rcvMsg = RcvMsgData {msgMeta, msgBody, internalRcvId, internalHash, externalPrevSndHash}
rcvMsg = RcvMsgData {..}
withStore $ \st -> createRcvMsg st connId rcvMsg
notify $ MSG msgMeta msgBody

View File

@@ -32,6 +32,7 @@ module Simplex.Messaging.Agent.Protocol
ACommand (..),
AParty (..),
SAParty (..),
MsgHash,
MsgMeta (..),
SMPMessage (..),
AMessage (..),
@@ -182,6 +183,8 @@ deriving instance Eq (ACommand p)
deriving instance Show (ACommand p)
type MsgHash = ByteString
-- | Agent message metadata sent to the client
data MsgMeta = MsgMeta
{ integrity :: MsgIntegrity,
@@ -209,7 +212,7 @@ data SMPMessage
-- | timestamp from the sending agent
senderTimestamp :: SenderTimestamp,
-- | digest of the previous message
previousMsgHash :: ByteString,
previousMsgHash :: MsgHash,
-- | messages sent between agents once queue is secured
agentMessage :: AMessage
}

View File

@@ -162,8 +162,6 @@ data AcceptedConfirmation = AcceptedConfirmation
-- * Message integrity validation types
type MsgHash = ByteString
-- | Corresponds to `last_external_snd_msg_id` in `connections` table
type PrevExternalSndId = Int64

View File

@@ -722,7 +722,7 @@ insertRcvMsgBase_ dbConn connId RcvMsgData {msgMeta, msgBody, internalRcvId} = d
INSERT INTO messages
( conn_alias, internal_id, internal_ts, internal_rcv_id, internal_snd_id, body, msg_body)
VALUES
(:conn_alias,:internal_id,:internal_ts,:internal_rcv_id, NULL, '', :msg_body);
(:conn_alias,:internal_id,:internal_ts,:internal_rcv_id, NULL, '',:msg_body);
|]
[ ":conn_alias" := connId,
":internal_id" := internalId,