Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | 3x 3x 3x 3x 3x 3x 6x 6x 6x 6x 6x 3x 6x 6x 3x 6x 6x 3x 6x 6x 6x 6x 3x 6x 2x 1x 1x 1x 4x 4x 2x 4x 6x 6x 6x 6x 3x 6x 6x 6x 3x 3x 1x | "use strict"; const inquirer = require('inquirer'); const fs = require('fs'); const yamlSchema = require('../../aws-operations/mobile-yaml-schema'); const yamlOps = require('../../aws-operations/mobile-yaml-ops'); const pathManager = require('../../utils/awsmobilejs-path-manager.js') // save project info from var _projectInfo = {}; var startQuestionary = () => new Promise( function (resolve, reject) { var currentDefinition = { 'analytics': { enabled: false } }; // Read current analytics configuration let backendProjectYamlFilePath = pathManager.getBackendSpecProjectYmlFilePath(_projectInfo.ProjectPath); let yamlDefinition = yamlOps.readYamlFileSync(backendProjectYamlFilePath); if (yamlDefinition['features'] && yamlDefinition['features']['mobile-analytics'] && yamlDefinition['features']['mobile-analytics']['components'] && yamlDefinition['features']['mobile-analytics']['components']['analytics']) { currentDefinition['analytics']['enabled'] = true; } currentDefinition.yamlDefinition = yamlDefinition; resolve(currentDefinition); }); var askEnableAnalytics = (currentDefinition) => { let defaultMessage = 'Currently Amazon Pinpoint analytics is disabled, do you want to enable it?' if (currentDefinition['analytics'].enabled) { defaultMessage = 'Currently Amazon Pinpoint analytics is enabled, do you want to keep it enabled?' } var enableQuestion = { type: 'confirm', name: 'enableAnalytics', message: defaultMessage, default: true } return inquirer.prompt(enableQuestion).then(answers => { currentDefinition['analytics']['enabled'] = answers.enableAnalytics; return currentDefinition; }); } var saveSettings = (currentDefinition) => { if (!currentDefinition['analytics']['enabled']) { //Remove analytics if (currentDefinition.yamlDefinition['features'] && currentDefinition.yamlDefinition['features']['mobile-analytics'] && currentDefinition.yamlDefinition['features']['mobile-analytics']['components']) { delete currentDefinition.yamlDefinition['features']['mobile-analytics']['components']['analytics']; // Check if there is nothing else enabled on mobile-analytics Eif (Object.keys(currentDefinition.yamlDefinition['features']['mobile-analytics']['components']).length === 0) { // remove mobile-analytics delete currentDefinition.yamlDefinition['features']['mobile-analytics']; } } } else { Iif (!currentDefinition.yamlDefinition['features']) { currentDefinition.yamlDefinition['features'] = {} } if (!currentDefinition.yamlDefinition['features']['mobile-analytics']) { // mobile-analytics not created currentDefinition.yamlDefinition['features']['mobile-analytics'] = new yamlSchema.dressObject({ components: {}, 'backend-class': 'Pinpoint' }); } currentDefinition.yamlDefinition['features']['mobile-analytics']['components']['analytics'] = new yamlSchema.dressObject({'backend-class': 'PinpointAnalytics' }); } let yaml = currentDefinition.yamlDefinition; let backendProjectYamlFilePath = pathManager.getBackendSpecProjectYmlFilePath(_projectInfo.ProjectPath); yamlOps.writeYamlFileSync(yaml, backendProjectYamlFilePath); return Promise.resolve(currentDefinition); } exports.specify = (projectInfo) => { _projectInfo = JSON.parse(JSON.stringify(projectInfo)); // clone projectInfo return new Promise(function (resolve, reject) { startQuestionary() .then(askEnableAnalytics) .then(saveSettings) .then(resolve) .catch(reject); }); } exports.onFeatureTurnOn = function (projectInfo, cloudProjectSpec) { _projectInfo = JSON.parse(JSON.stringify(projectInfo)); // clone projectInfo } exports.onFeatureTurnOff = function (projectInfo, cloudProjectSpec) { _projectInfo = JSON.parse(JSON.stringify(projectInfo)); // clone projectInfo } |