packages feed

eventful-sql-common 0.1.3 → 0.2.0

raw patch · 2 files changed

+34/−28 lines, 2 filesdep ~eventful-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: eventful-core

API changes (from Hackage documentation)

- Eventful.Store.Sql.Operations: sqlGloballyOrderedEventStore :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend) => SqlEventStoreConfig entity serialized -> GloballyOrderedEventStore serialized (SqlPersistT m)
+ Eventful.Store.Sql.Operations: sqlEventStoreReader :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend) => SqlEventStoreConfig entity serialized -> VersionedEventStoreReader (SqlPersistT m) serialized
+ Eventful.Store.Sql.Operations: sqlGlobalEventStoreReader :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend) => SqlEventStoreConfig entity serialized -> GlobalEventStoreReader (SqlPersistT m) serialized
- Eventful.Store.Sql.Operations: sqlGetAggregateEvents :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend) => SqlEventStoreConfig entity serialized -> UUID -> EventStoreQueryRange EventVersion -> SqlPersistT m [StoredEvent serialized]
+ Eventful.Store.Sql.Operations: sqlGetAggregateEvents :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend) => SqlEventStoreConfig entity serialized -> QueryRange UUID EventVersion -> SqlPersistT m [VersionedStreamEvent serialized]

Files

eventful-sql-common.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           eventful-sql-common-version:        0.1.3+version:        0.2.0 synopsis:       Common library for SQL event stores description:    Common library for SQL event stores category:       Database,Eventsourcing
src/Eventful/Store/Sql/Operations.hs view
@@ -5,7 +5,8 @@  module Eventful.Store.Sql.Operations   ( SqlEventStoreConfig (..)-  , sqlGloballyOrderedEventStore+  , sqlEventStoreReader+  , sqlGlobalEventStoreReader   , sqlGetProjectionIds   , sqlGetAggregateEvents   , sqlMaxEventVersion@@ -42,26 +43,32 @@   , sqlEventStoreConfigDataField :: EntityField entity serialized   } -sqlGloballyOrderedEventStore+sqlEventStoreReader   :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend)   => SqlEventStoreConfig entity serialized-  -> GloballyOrderedEventStore serialized (SqlPersistT m)-sqlGloballyOrderedEventStore config =-  GloballyOrderedEventStore $ sqlGetAllEventsInRange config+  -> VersionedEventStoreReader (SqlPersistT m) serialized+sqlEventStoreReader config = EventStoreReader $ sqlGetAggregateEvents config -sqlEventToGloballyOrdered+sqlGlobalEventStoreReader+  :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend)+  => SqlEventStoreConfig entity serialized+  -> GlobalEventStoreReader (SqlPersistT m) serialized+sqlGlobalEventStoreReader config =+  EventStoreReader $ sqlGetAllEventsInRange config++sqlEventToGlobalStream   :: SqlEventStoreConfig entity serialized   -> Entity entity-  -> GloballyOrderedEvent serialized-sqlEventToGloballyOrdered config@SqlEventStoreConfig{..} (Entity key event) =-  storedEventToGloballyOrderedEvent (sqlEventStoreConfigUnKey key) (sqlEventToStored config event)+  -> GlobalStreamEvent serialized+sqlEventToGlobalStream config@SqlEventStoreConfig{..} (Entity key event) =+  StreamEvent () (sqlEventStoreConfigUnKey key) (sqlEventToVersioned config event) -sqlEventToStored+sqlEventToVersioned   :: SqlEventStoreConfig entity serialized   -> entity-  -> StoredEvent serialized-sqlEventToStored SqlEventStoreConfig{..} entity =-  StoredEvent+  -> VersionedStreamEvent serialized+sqlEventToVersioned SqlEventStoreConfig{..} entity =+  StreamEvent   (sqlEventStoreConfigUUID entity)   (sqlEventStoreConfigVersion entity)   (sqlEventStoreConfigData entity)@@ -79,40 +86,39 @@ sqlGetAggregateEvents   :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend)   => SqlEventStoreConfig entity serialized-  -> UUID-  -> EventStoreQueryRange EventVersion-  -> SqlPersistT m [StoredEvent serialized]-sqlGetAggregateEvents config@SqlEventStoreConfig{..} uuid EventStoreQueryRange{..} = do+  -> QueryRange UUID EventVersion+  -> SqlPersistT m [VersionedStreamEvent serialized]+sqlGetAggregateEvents config@SqlEventStoreConfig{..} QueryRange{..} = do   entities <- selectList filters selectOpts-  return $ sqlEventToStored config . entityVal <$> entities+  return $ sqlEventToVersioned config . entityVal <$> entities   where     startFilter =-      case eventStoreQueryRangeStart of+      case queryRangeStart of         StartFromBeginning -> []         StartQueryAt start -> [sqlEventStoreConfigVersionField >=. start]     (endFilter, endSelectOpt) =-      case eventStoreQueryRangeLimit of+      case queryRangeLimit of         NoQueryLimit -> ([], [])         MaxNumberOfEvents maxNum -> ([], [LimitTo maxNum])         StopQueryAt stop -> ([sqlEventStoreConfigVersionField <=. stop], [])-    filters = (sqlEventStoreConfigUUIDField ==. uuid) : startFilter ++ endFilter+    filters = (sqlEventStoreConfigUUIDField ==. queryRangeKey) : startFilter ++ endFilter     selectOpts = Asc sqlEventStoreConfigSequenceNumberField : endSelectOpt  sqlGetAllEventsInRange   :: (MonadIO m, PersistEntity entity, PersistEntityBackend entity ~ SqlBackend)   => SqlEventStoreConfig entity serialized-  -> EventStoreQueryRange SequenceNumber-  -> SqlPersistT m [GloballyOrderedEvent serialized]-sqlGetAllEventsInRange config@SqlEventStoreConfig{..} EventStoreQueryRange{..} = do+  -> QueryRange () SequenceNumber+  -> SqlPersistT m [GlobalStreamEvent serialized]+sqlGetAllEventsInRange config@SqlEventStoreConfig{..} QueryRange{..} = do   entities <- selectList filters selectOpts-  return $ sqlEventToGloballyOrdered config <$> entities+  return $ sqlEventToGlobalStream config <$> entities   where     startFilter =-      case eventStoreQueryRangeStart of+      case queryRangeStart of         StartFromBeginning -> []         StartQueryAt start -> [sqlEventStoreConfigSequenceNumberField >=. sqlEventStoreConfigMakeKey start]     (endFilter, endSelectOpt) =-      case eventStoreQueryRangeLimit of+      case queryRangeLimit of         NoQueryLimit -> ([], [])         MaxNumberOfEvents maxNum -> ([], [LimitTo maxNum])         StopQueryAt stop -> ([sqlEventStoreConfigSequenceNumberField <=. sqlEventStoreConfigMakeKey stop], [])