From 2169f1030cded87e6ab38b4ae8293e7f147b5e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 9 Nov 2019 21:24:57 +0100 Subject: Attach device service --- src/State.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/State.hs') diff --git a/src/State.hs b/src/State.hs index 91fff2b..515391d 100644 --- a/src/State.hs +++ b/src/State.hs @@ -4,6 +4,10 @@ module State ( loadLocalState, updateLocalState, updateLocalState_, + updateSharedState, updateSharedState_, + mergeSharedStates, + + mergeSharedIdentity, updateIdentity, ) where @@ -119,6 +123,15 @@ mergeSharedStates ss@(s:_) = wrappedStore (storedStorage s) $ SharedState } mergeSharedStates [] = error "mergeSharedStates: empty list" + +mergeSharedIdentity :: Storage -> IO UnifiedIdentity +mergeSharedIdentity st = updateSharedState st $ \sshared -> do + let shared = fromStored sshared + Just cidentity = verifyIdentityF $ ssIdentity shared + identity <- mergeIdentity cidentity + sshared' <- wrappedStore st $ shared { ssIdentity = [idData identity] } + return (sshared', identity) + updateIdentity :: Storage -> IO () updateIdentity st = updateSharedState_ st $ \sshared -> do let shared = fromStored sshared -- cgit v1.2.3