app/story_packages/updates/UpdatesStream.scala (29 lines of code) (raw):
package story_packages.updates
import story_packages.model.StoryPackage
class UpdatesStream(auditingUpdates: AuditingUpdates, kinesisEventSender: KinesisEventSender) {
def putStreamUpdate(streamUpdate: AuditUpdate): Unit = {
auditingUpdates.putAudit(streamUpdate)
for {
(collectionId, collectionJson) <- streamUpdate.collections
isHidden <- streamUpdate.storyPackage.isHidden
displayName <- streamUpdate.storyPackage.name
} yield {
kinesisEventSender.putCapiUpdate(collectionId, displayName, collectionJson, isHidden)
}
}
def putStreamDelete(streamUpdate: AuditUpdate, packageId: String, isHidden: Boolean): Unit = {
auditingUpdates.putAudit(streamUpdate)
kinesisEventSender.putCapiDelete(packageId, isHidden)
}
def putStreamCreate(storyPackage: StoryPackage, email: String): Unit = {
for {
id <- storyPackage.id
isHidden <- storyPackage.isHidden
name <- storyPackage.name
} yield {
val updateMessage = CreatePackage(id, isHidden, name)
val streamUpdate = AuditUpdate(updateMessage, email, Map(), storyPackage)
auditingUpdates.putAudit(streamUpdate)
}
}
}