packages feed

ipedb-0.1.0.0: src/IpeDb/Query.hs

module IpeDb.Query (
  withInfoProvDb,
  setupInfoProvDb,
  populateFromEventlog,
  lookupInfoProv,
  insertInfoProv,
  listInfoProvs,
) where

import qualified IpeDb.Eventlog.Index as Index
import IpeDb.InfoProv
import IpeDb.Types

-- ----------------------------------------------------------------------------
-- High Level API
-- ----------------------------------------------------------------------------

withInfoProvDb :: FilePath -> (InfoProvDb -> IO a) -> IO a
withInfoProvDb fp act =
  Index.withDatabase fp (\conn -> act InfoProvDb{conn})

setupInfoProvDb :: InfoProvDb -> IO ()
setupInfoProvDb db =
  Index.setupDb db.conn

populateFromEventlog :: InfoProvDb -> FilePath -> IO ()
populateFromEventlog db fp =
  Index.generateInfoProvDb db.conn fp

lookupInfoProv :: InfoProvDb -> IpeId -> IO (Maybe InfoProv)
lookupInfoProv db ipeId = do
  Index.findOneInfoProv db.conn ipeId

insertInfoProv :: InfoProvDb -> InfoProv -> IO ()
insertInfoProv db ipe = do
  Index.insertInfoProv db.conn ipe

listInfoProvs :: InfoProvDb -> IO [InfoProv]
listInfoProvs db = do
  Index.findAllInfoProvs db.conn