add event sourcing actions
This commit is contained in:
parent
4e92be1ce3
commit
245363f603
|
@ -0,0 +1,41 @@
|
|||
import { Q } from '@nozbe/watermelondb'
|
||||
import database from '../db'
|
||||
|
||||
const lpCollection = database.collections.get('lp_events')
|
||||
export const addEvent = async data => {
|
||||
await database.action(async () => {
|
||||
const res = await lpCollection.create(lpEvent => {
|
||||
const { event, address, id, blockNumber } = data
|
||||
lpEvent.eventId = id
|
||||
lpEvent.address = address
|
||||
lpEvent.event = event
|
||||
lpEvent.blockNumber = blockNumber
|
||||
return lpEvent
|
||||
})
|
||||
return res
|
||||
})
|
||||
}
|
||||
|
||||
export const batchAddEvents = async events => {
|
||||
const batch = events.map(e => {
|
||||
return lpCollection.prepareCreate(lpEvent => {
|
||||
const { event, address, id, blockNumber } = e
|
||||
lpEvent.eventId = id
|
||||
lpEvent.address = address
|
||||
lpEvent.event = event
|
||||
lpEvent.blockNumber = blockNumber
|
||||
return lpEvent
|
||||
})
|
||||
})
|
||||
console.log({batch})
|
||||
return await database.action(async () => await database.batch(...batch))
|
||||
}
|
||||
|
||||
|
||||
export const getLpEventById = async id => {
|
||||
const event = await lpCollection.query(
|
||||
//Q.where('event_id', id)
|
||||
).fetch()
|
||||
console.log({event})
|
||||
return event
|
||||
}
|
17
app/dapp.js
17
app/dapp.js
|
@ -11,7 +11,7 @@ import { FundingContext } from './context'
|
|||
import { cancelProfile } from './utils/fundProfiles'
|
||||
import MainCointainer from './components/MainCointainer'
|
||||
import { getTransfersMemo } from './selectors/pledging'
|
||||
import database from './db'
|
||||
import { getLpEventById, addEvent, batchAddEvents } from './actions/lpEvents'
|
||||
|
||||
const { getNetworkType } = web3.eth.net
|
||||
|
||||
|
@ -33,6 +33,9 @@ class App extends React.Component {
|
|||
const { environment } = EmbarkJS
|
||||
const isInitialized = await vaultPledgingNeedsInit()
|
||||
if (!!isInitialized) {
|
||||
const events = await getLpEventById(5)
|
||||
console.log({events})
|
||||
|
||||
if (environment === 'development') console.log('mock_time:', await LiquidPledging.mock_time.call())
|
||||
const lpAllowance = await getLpAllowance()
|
||||
const fundProfiles = await getProfileEvents()
|
||||
|
@ -42,8 +45,16 @@ class App extends React.Component {
|
|||
const allLpEvents = await getAllLPEvents()
|
||||
const vaultEvents = await getAllVaultEvents()
|
||||
const transfers = getTransfersMemo({ allLpEvents })
|
||||
const lpCollection = database.collections.get('lp_events')
|
||||
console.log({lpCollection})
|
||||
|
||||
//TODO remove
|
||||
const batching = await batchAddEvents(allLpEvents)
|
||||
console.log({batching})
|
||||
|
||||
/* allLpEvents.forEach(async e => {
|
||||
* const event = await getLpEventById(e.id)
|
||||
* //const event = await addEvent(e)
|
||||
* console.log({e, event})
|
||||
* }) */
|
||||
this.setState({
|
||||
account,
|
||||
network,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import { Model } from '@nozbe/watermelondb'
|
||||
import { action } from '@nozbe/watermelondb/decorators'
|
||||
|
||||
export default class LpEvent extends Model {
|
||||
static table = 'lp_events'
|
||||
|
@ -6,5 +7,16 @@ export default class LpEvent extends Model {
|
|||
@field('event_id') eventId
|
||||
@field('address') address
|
||||
@field('event') event
|
||||
@field('block_number') blockNumber
|
||||
|
||||
@action async addEvent(data) {
|
||||
return await this.create(lpEvent => {
|
||||
const { event, address, id, blockNumber } = data
|
||||
lpEvent.eventId = id
|
||||
lpEvent.address = address
|
||||
lpEvent.event = event
|
||||
lpEvent.blockNumber = blockNumber
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ export default appSchema({
|
|||
{ name: 'address', type: 'string' },
|
||||
{ name: 'event', type: 'string' },
|
||||
{ name: 'event_id', type: 'string' },
|
||||
{ name: 'block_number', type: 'number', isIndexed: true },
|
||||
]
|
||||
})
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue