| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- const _ = require('lodash')
 
- const { createApolloFetch } = require('apollo-fetch')
 
- /* global WIKI */
 
- module.exports = async (localeCode) => {
 
-   WIKI.logger.info(`Fetching locale ${localeCode} from Graph endpoint...`)
 
-   try {
 
-     const apollo = createApolloFetch({
 
-       uri: WIKI.config.graphEndpoint
 
-     })
 
-     const respStrings = await apollo({
 
-       query: `query ($code: String!) {
 
-         localization {
 
-           strings(code: $code) {
 
-             key
 
-             value
 
-           }
 
-         }
 
-       }`,
 
-       variables: {
 
-         code: localeCode
 
-       }
 
-     })
 
-     const strings = _.get(respStrings, 'data.localization.strings', [])
 
-     let lcObj = {}
 
-     _.forEach(strings, row => {
 
-       if (_.includes(row.key, '::')) { return }
 
-       if (_.isEmpty(row.value)) {
 
-         row.value = row.key
 
-       }
 
-       _.set(lcObj, row.key.replace(':', '.'), row.value)
 
-     })
 
-     const locales = await WIKI.cache.get('locales')
 
-     if (locales) {
 
-       const currentLocale = _.find(locales, ['code', localeCode]) || {}
 
-       const existingLocale = await WIKI.models.locales.query().where('code', localeCode).first()
 
-       if (existingLocale) {
 
-         await WIKI.models.locales.query().patch({
 
-           strings: lcObj
 
-         }).where('code', localeCode)
 
-       } else {
 
-         await WIKI.models.locales.query().insert({
 
-           code: localeCode,
 
-           strings: lcObj,
 
-           isRTL: currentLocale.isRTL,
 
-           name: currentLocale.name,
 
-           nativeName: currentLocale.nativeName,
 
-           availability: currentLocale.availability
 
-         })
 
-       }
 
-     } else {
 
-       throw new Error('Failed to fetch cached locales list! Restart server to resolve this issue.')
 
-     }
 
-     await WIKI.lang.refreshNamespaces()
 
-     WIKI.logger.info(`Fetching locale ${localeCode} from Graph endpoint: [ COMPLETED ]`)
 
-   } catch (err) {
 
-     WIKI.logger.error(`Fetching locale ${localeCode} from Graph endpoint: [ FAILED ]`)
 
-     WIKI.logger.error(err.message)
 
-   }
 
- }
 
 
  |