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