support filter callbacks
This commit is contained in:
parent
3c4ceabeca
commit
668b7ef65d
|
@ -49,11 +49,19 @@ class EventSyncer {
|
||||||
}
|
}
|
||||||
|
|
||||||
// trackEvent(eventName, filterConditions) {
|
// trackEvent(eventName, filterConditions) {
|
||||||
trackEvent(contractInstance, eventName, filterConditions) {
|
trackEvent(contractInstance, eventName, filterConditionsOrCb) {
|
||||||
// let eventKey = eventName + "-from0x123";
|
// let eventKey = eventName + "-from0x123";
|
||||||
let eventKey = eventName;
|
let eventKey = eventName;
|
||||||
let namespace = randomString()
|
let namespace = randomString()
|
||||||
|
|
||||||
|
|
||||||
|
let filterConditions, filterConditionsCb;
|
||||||
|
if (typeof filterConditionsOrCb === 'function') {
|
||||||
|
filterConditionsCb = filterConditionsOrCb
|
||||||
|
} else {
|
||||||
|
filterConditions = filterConditionsOrCb
|
||||||
|
}
|
||||||
|
|
||||||
let tracked = this.db.getCollection('tracked')
|
let tracked = this.db.getCollection('tracked')
|
||||||
let lastEvent = tracked.find({ "eventName": eventName })[0]
|
let lastEvent = tracked.find({ "eventName": eventName })[0]
|
||||||
if (!lastEvent || lastEvent.length <= 0) {
|
if (!lastEvent || lastEvent.length <= 0) {
|
||||||
|
@ -93,6 +101,10 @@ class EventSyncer {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (filterConditionsCb) {
|
||||||
|
if (!filterConditionsCb(event.returnValues)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.events.emit("event-" + eventName + "-" + namespace, event);
|
this.events.emit("event-" + eventName + "-" + namespace, event);
|
||||||
|
|
|
@ -96,9 +96,11 @@ async function run() {
|
||||||
|
|
||||||
// TODO: would be nice if trackEvent was smart enough to understand the type of returnValues and do the needed conversions
|
// TODO: would be nice if trackEvent was smart enough to understand the type of returnValues and do the needed conversions
|
||||||
// eventSyncer.trackEvent(RatingContract, 'Rating', ((x) => true)).pipe(map(x => parseInt(x.rating)), myscan, mymap).subscribe((v) => {
|
// eventSyncer.trackEvent(RatingContract, 'Rating', ((x) => true)).pipe(map(x => parseInt(x.rating)), myscan, mymap).subscribe((v) => {
|
||||||
|
|
||||||
|
// eventSyncer.trackEvent(RatingContract, 'Rating').pipe(map(x => parseInt(x.rating)), myscan, mymap).subscribe((v) => {
|
||||||
// eventSyncer.trackEvent(RatingContract, 'Rating', ((x) => true)).pipe(map(x => x.rating)).subscribe((v) => {
|
// eventSyncer.trackEvent(RatingContract, 'Rating', ((x) => true)).pipe(map(x => x.rating)).subscribe((v) => {
|
||||||
|
|
||||||
eventSyncer.trackEvent(RatingContract, 'Rating').pipe(map(x => parseInt(x.rating)), myscan, mymap).subscribe((v) => {
|
eventSyncer.trackEvent(RatingContract, 'Rating', ((x) => true)).pipe(map(x => parseInt(x.rating)), myscan, mymap).subscribe((v) => {
|
||||||
console.dir("value is ")
|
console.dir("value is ")
|
||||||
console.dir(v)
|
console.dir(v)
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue