From 61b04eb5fda0d1e94f673ad1c11f328a318bb09d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Fri, 11 Oct 2019 22:19:15 +0200 Subject: Identity merging and verification --- src/Message.hs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/Message.hs') diff --git a/src/Message.hs b/src/Message.hs index 0a1a70e..8892edb 100644 --- a/src/Message.hs +++ b/src/Message.hs @@ -11,17 +11,18 @@ import Data.Text (Text) import Data.Time.LocalTime import Identity +import PubKey import Storage data DirectMessage = DirectMessage - { msgFrom :: Stored Identity + { msgFrom :: Stored (Signed IdentityData) , msgPrev :: [Stored DirectMessage] , msgTime :: ZonedTime , msgText :: Text } data DirectMessageThread = DirectMessageThread - { msgPeer :: Stored Identity + { msgPeer :: Stored (Signed IdentityData) , msgHead :: [Stored DirectMessage] , msgSeen :: [Stored DirectMessage] } @@ -51,15 +52,15 @@ instance Storable DirectMessageThread where <*> loadRefs "seen" -emptyDirectThread :: Stored Identity -> DirectMessageThread -emptyDirectThread peer = DirectMessageThread peer [] [] +emptyDirectThread :: UnifiedIdentity -> DirectMessageThread +emptyDirectThread peer = DirectMessageThread (idData peer) [] [] -createDirectMessage :: Stored Identity -> DirectMessageThread -> Text -> IO (Stored DirectMessage, Stored DirectMessageThread) +createDirectMessage :: UnifiedIdentity -> DirectMessageThread -> Text -> IO (Stored DirectMessage, Stored DirectMessageThread) createDirectMessage self thread msg = do - let st = storedStorage self + let st = storedStorage $ idData self time <- getZonedTime smsg <- wrappedStore st DirectMessage - { msgFrom = finalOwner self + { msgFrom = idData $ finalOwner self , msgPrev = msgHead thread , msgTime = time , msgText = msg -- cgit v1.2.3