|
|
@ -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) |
|
|
|
} |
|
|
|
} |