feat: HA event handling + emitting

This commit is contained in:
NGPixel
2020-04-19 20:26:26 -04:00
committed by Nicolas Giard
parent 6a00a5dbce
commit bd4263ecb2
14 changed files with 109 additions and 33 deletions

View File

@@ -436,7 +436,8 @@ module.exports = class Page extends Model {
localeCode: opts.destinationLocale,
hash: destinationHash
}).findById(page.id)
await WIKI.models.pages.deletePageFromCache(page)
await WIKI.models.pages.deletePageFromCache(page.hash)
WIKI.events.outbound.emit('deletePageFromCache', page.hash)
// -> Rebuild page tree
await WIKI.models.pages.rebuildTree()
@@ -512,7 +513,8 @@ module.exports = class Page extends Model {
// -> Delete page
await WIKI.models.pages.query().delete().where('id', page.id)
await WIKI.models.pages.deletePageFromCache(page)
await WIKI.models.pages.deletePageFromCache(page.hash)
WIKI.events.outbound.emit('deletePageFromCache', page.hash)
// -> Rebuild page tree
await WIKI.models.pages.rebuildTree()
@@ -609,7 +611,8 @@ module.exports = class Page extends Model {
affectedHashes = qryHashes.map(h => h.hash)
}
for (const hash of affectedHashes) {
await WIKI.models.pages.deletePageFromCache({ hash })
await WIKI.models.pages.deletePageFromCache(hash)
WIKI.events.outbound.emit('deletePageFromCache', hash)
}
}
@@ -853,4 +856,16 @@ module.exports = class Page extends Model {
.replace(/\s\s+/g, ' ')
.split(' ').filter(w => w.length > 1).join(' ').toLowerCase()
}
/**
* Subscribe to HA propagation events
*/
static subscribeToEvents() {
WIKI.events.inbound.on('deletePageFromCache', hash => {
WIKI.models.pages.deletePageFromCache(hash)
})
WIKI.events.inbound.on('flushCache', () => {
WIKI.models.pages.flushCache()
})
}
}