| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Database.CQRS.PostgreSQL.Projection
Synopsis
- type Projection event st = Projection event st SqlAction
- executeSqlActions :: forall streamId eventId action m st. (MonadError Error m, MonadIO m, ToField eventId, ToField streamId, ToField st) => ([action] -> [SqlAction]) -> (forall r. (Connection -> IO r) -> IO r) -> TrackingTable streamId eventId st -> Consumer (st, [action], streamId, eventId) m ()
- executeCustomActions :: forall streamId eventId action m st. (MonadError Error m, MonadIO m, ToField eventId, ToField streamId, ToField st) => (action -> m (Either String (m ()))) -> TrackingTable streamId eventId st -> Consumer (st, [action], streamId, eventId) m ()
- fromTabularDataActions :: FromTabularDataAction cols => Query -> [TabularDataAction cols] -> [SqlAction]
Documentation
type Projection event st = Projection event st SqlAction Source #
executeSqlActions :: forall streamId eventId action m st. (MonadError Error m, MonadIO m, ToField eventId, ToField streamId, ToField st) => ([action] -> [SqlAction]) -> (forall r. (Connection -> IO r) -> IO r) -> TrackingTable streamId eventId st -> Consumer (st, [action], streamId, eventId) m () Source #
Execute the SQL actions and update the tracking table in one transaction.
The custom actions are transformed into a list of SQL actions by the given
function. See fromTabularDataActions for an example.
Arguments
| :: (MonadError Error m, MonadIO m, ToField eventId, ToField streamId, ToField st) | |
| => (action -> m (Either String (m ()))) | Run an action returning either an error or a rollback action. If any of the rollback actions fail, the others are not run. Rollback actions are run in reversed order. |
| -> TrackingTable streamId eventId st | |
| -> Consumer (st, [action], streamId, eventId) m () |
Execute custom actions by calling the runner function on each action in turn and updating the tracking table accordingly.
fromTabularDataActions Source #
Arguments
| :: FromTabularDataAction cols | |
| => Query | Relation name. |
| -> [TabularDataAction cols] | |
| -> [SqlAction] |