From e9e56453c13714003e168890ce23e407d2d3aeee Mon Sep 17 00:00:00 2001 From: "Rene V. Vergara A." Date: Mon, 13 May 2024 16:26:07 -0400 Subject: [PATCH] rvv041 - Insert and edit an address book entry functions created address field in address book changed to T.Text --- src/Zenith/DB.hs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/Zenith/DB.hs b/src/Zenith/DB.hs index 26cf8d5..50d64f8 100644 --- a/src/Zenith/DB.hs +++ b/src/Zenith/DB.hs @@ -249,7 +249,7 @@ share AddressBook network ZcashNetDB descrip T.Text - address HexStringDB + address T.Text UniqueABA address deriving Show Eq |] @@ -1484,5 +1484,24 @@ getAdrBook pool n = where_ (adrbook ^. AddressBookNetwork ==. val (ZcashNetDB n)) pure adrbook +-- | Save a new address into AddressBook +saveAdrsInAdrBook :: + ConnectionPool -- ^ The database path to use + -> AddressBook -- ^ The address to add to the database + -> IO (Maybe (Entity AddressBook)) +saveAdrsInAdrBook pool a = + runNoLoggingT $ + PS.retryOnBusy $ flip PS.runSqlPool pool $ insertUniqueEntity a + +-- | Update an existing address into AddressBook +updateAdrsInAdrBook :: ConnectionPool -> T.Text -> AddressBookId -> IO () +updateAdrsInAdrBook pool a i = do + runNoLoggingT $ + PS.retryOnBusy $ + flip PS.runSqlPool pool $ do + update $ \ab -> do + set ab [AddressBookAddress =. val a] + where_ $ ab ^. AddressBookId ==. val i + rmdups :: Ord a => [a] -> [a] rmdups = map head . group . sort