-
Notifications
You must be signed in to change notification settings - Fork 0
Mutating commits in the store
Trym Skaar edited this page Feb 24, 2018
·
1 revision
import ddbes from 'ddbes'
async function* transformCartItemNames() {
const commitsToChange = ddbes.dynamodb.getAggregateCommits({
aggregateType: 'Cart'
})
for await (const commit of commitsToChange) {
const events = commit.events.map(event => {
switch (event.type) {
case 'ItemAdded': {
return {...event, name: `${event.name} updated!`}
}
default:
return event
}
})
yield {...commit, events}
}
}
async function migrateSomeData() {
const mutator = new ddbes.dynamodb.BatchMutator()
const legacyUsers = ddbes.dynamodb.getAggregateCommits({aggregateType: 'LegacyUser'})
await mutator.delete(legacyUsers)
await mutator.put(transformCartItemNames())
await mutator.drained
}