feat: check for updates
This commit is contained in:
45
server/jobs/sync-graph-updates.js
Normal file
45
server/jobs/sync-graph-updates.js
Normal file
@@ -0,0 +1,45 @@
|
||||
require('../core/worker')
|
||||
const _ = require('lodash')
|
||||
const { createApolloFetch } = require('apollo-fetch')
|
||||
|
||||
/* global WIKI */
|
||||
|
||||
WIKI.redis = require('../core/redis').init()
|
||||
WIKI.models = require('../core/db').init()
|
||||
|
||||
module.exports = async (job) => {
|
||||
WIKI.logger.info(`Fetching latest updates from Graph endpoint...`)
|
||||
|
||||
try {
|
||||
await WIKI.configSvc.loadFromDb()
|
||||
const apollo = createApolloFetch({
|
||||
uri: WIKI.config.graphEndpoint
|
||||
})
|
||||
|
||||
const resp = await apollo({
|
||||
query: `query ($channel: ReleaseChannel!, $version: String!) {
|
||||
releases {
|
||||
checkForUpdates(channel: $channel, version: $version) {
|
||||
channel
|
||||
version
|
||||
releaseDate
|
||||
minimumVersionRequired
|
||||
minimumNodeRequired
|
||||
}
|
||||
}
|
||||
}`,
|
||||
variables: {
|
||||
channel: 'BETA', // TODO
|
||||
version: WIKI.version
|
||||
}
|
||||
})
|
||||
const info = _.get(resp, 'data.releases.checkForUpdates', {})
|
||||
|
||||
await WIKI.redis.publish('updates', JSON.stringify(info))
|
||||
|
||||
WIKI.logger.info(`Fetching latest updates from Graph endpoint: [ COMPLETED ]`)
|
||||
} catch (err) {
|
||||
WIKI.logger.error(`Fetching latest updates from Graph endpoint: [ FAILED ]`)
|
||||
WIKI.logger.error(err.message)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user