summaryrefslogtreecommitdiff
path: root/src/Erebos/Contact.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Erebos/Contact.hs')
-rw-r--r--src/Erebos/Contact.hs22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/Erebos/Contact.hs b/src/Erebos/Contact.hs
index d90aa50..78a504a 100644
--- a/src/Erebos/Contact.hs
+++ b/src/Erebos/Contact.hs
@@ -4,6 +4,8 @@ module Erebos.Contact (
contactCustomName,
contactName,
+ ContactData(..),
+
contactSetName,
ContactService,
@@ -28,7 +30,7 @@ import Erebos.PubKey
import Erebos.Service
import Erebos.Set
import Erebos.State
-import Erebos.Storage
+import Erebos.Storable
import Erebos.Storage.Merge
data Contact = Contact
@@ -83,13 +85,12 @@ contactName c = fromJust $ msum
contactSetName :: MonadHead LocalState m => Contact -> Text -> Set Contact -> m (Set Contact)
contactSetName contact name set = do
- st <- getStorage
- cdata <- wrappedStore st ContactData
+ cdata <- mstore ContactData
{ cdPrev = toComponents contact
, cdIdentity = []
, cdName = Just name
}
- storeSetAdd st (mergeSorted @Contact [cdata]) set
+ storeSetAdd (mergeSorted @Contact [cdata]) set
type ContactService = PairingService ContactAccepted
@@ -155,21 +156,20 @@ instance PairingResult ContactAccepted where
svcPrint $ "Contact failed"
}
-contactRequest :: (MonadIO m, MonadError String m) => Peer -> m ()
+contactRequest :: (MonadIO m, MonadError e m, FromErebosError e) => Peer -> m ()
contactRequest = pairingRequest @ContactAccepted Proxy
-contactAccept :: (MonadIO m, MonadError String m) => Peer -> m ()
+contactAccept :: (MonadIO m, MonadError e m, FromErebosError e) => Peer -> m ()
contactAccept = pairingAccept @ContactAccepted Proxy
-contactReject :: (MonadIO m, MonadError String m) => Peer -> m ()
+contactReject :: (MonadIO m, MonadError e m, FromErebosError e) => Peer -> m ()
contactReject = pairingReject @ContactAccepted Proxy
finalizeContact :: MonadHead LocalState m => UnifiedIdentity -> m ()
-finalizeContact identity = updateLocalHead_ $ updateSharedState_ $ \contacts -> do
- st <- getStorage
- cdata <- wrappedStore st ContactData
+finalizeContact identity = updateLocalState_ $ updateSharedState_ $ \contacts -> do
+ cdata <- mstore ContactData
{ cdPrev = []
, cdIdentity = idExtDataF $ finalOwner identity
, cdName = Nothing
}
- storeSetAdd st (mergeSorted @Contact [cdata]) contacts
+ storeSetAdd (mergeSorted @Contact [cdata]) contacts