refactor: clean up per good-code review

- Remove internal helpers from Postgres.hs export list (withDB, withDB',
  handleDuplicate, assertUpdated, withLog are not imported externally)
- Replace local isNothing_ with Data.Maybe.isNothing in Env.hs
- Consolidate duplicate/unused imports in XFTPStoreTests.hs
- Add file_path IS NULL and status guards to STM setFilePath, matching
  the Postgres implementation semantics
This commit is contained in:
shum
2026-04-07 12:59:43 +00:00
parent 5de4f78e50
commit 37b3ad027e
5 changed files with 91 additions and 56 deletions
+2 -4
View File
@@ -41,6 +41,7 @@ import Simplex.FileTransfer.Server.Store
import Simplex.Messaging.Agent.Store.Shared (MigrationConfirmation)
#if defined(dbServerPostgres)
import Data.Functor (($>))
import Data.Maybe (isNothing)
import Simplex.FileTransfer.Server.Store.Postgres (PostgresFileStore, importFileStore, exportFileStore)
import Simplex.FileTransfer.Server.Store.Postgres.Config (PostgresFileStoreCfg (..), defaultXFTPDBOpts)
import Simplex.Messaging.Server.CLI (iniDBOptions, settingIsOn)
@@ -190,14 +191,11 @@ checkFileStoreMode ini storeType storeLogFilePath = case storeType of
"database" -> do
storeLogExists <- doesFileExist storeLogFilePath
let dbStoreLogOn = settingIsOn "STORE_LOG" "db_store_log" ini
when (storeLogExists && isNothing_ dbStoreLogOn) $ do
when (storeLogExists && isNothing dbStoreLogOn) $ do
putStrLn $ "Error: store log file " <> storeLogFilePath <> " exists but store_files is `database`."
putStrLn "Use `file-server database import` to migrate, or set `db_store_log: on`."
exitFailure
_ -> pure ()
where
isNothing_ Nothing = True
isNothing_ _ = False
#else
checkFileStoreMode _ _ _ = pure ()
#endif
+9 -3
View File
@@ -97,9 +97,15 @@ instance FileStoreClass STMFileStore where
pure $ Right ()
setFilePath st sId fPath = atomically $
withSTMFile st sId $ \FileRec {filePath} -> do
writeTVar filePath (Just fPath)
pure $ Right ()
withSTMFile st sId $ \FileRec {filePath, fileStatus} -> do
readTVar filePath >>= \case
Just _ -> pure $ Left AUTH
Nothing ->
readTVar fileStatus >>= \case
EntityActive -> do
writeTVar filePath (Just fPath)
pure $ Right ()
_ -> pure $ Left AUTH
addRecipient st@STMFileStore {recipients} senderId (FileRecipient rId rKey) = atomically $
withSTMFile st senderId $ \FileRec {recipientIds} -> do
@@ -9,11 +9,6 @@
module Simplex.FileTransfer.Server.Store.Postgres
( PostgresFileStore (..),
withDB,
withDB',
handleDuplicate,
assertUpdated,
withLog,
importFileStore,
exportFileStore,
)