All files / lib backend-import.js

45.16% Statements 14/31
0% Branches 0/8
0% Functions 0/4
45.16% Lines 14/31
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                          2x 2x 2x 2x   2x 2x 2x 2x 2x 2x 2x 2x 2x                                                                                 2x    
/* 
 * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 *
 *     http://aws.amazon.com/apache2.0/
 *
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
*/
"use strict";
const fs = require('fs-extra')
const inquirer = require('inquirer')
const chalk = require('chalk')
const ora = require('ora')
 
const projectInfoManager = require('./project-info-manager.js')
const backendUpdate = require('./backend-update.js')
const backendInfoManager = require('./backend-operations/backend-info-manager.js')
const awsConfigManager = require('./aws-operations/aws-config-manager.js')
const awsClient = require('./aws-operations/aws-client.js')
const awsExceptionHandler = require('./aws-operations/aws-exception-handler.js')
const opsProject = require('./backend-operations/ops-project.js')
const pathManager = require('./utils/awsmobilejs-path-manager.js')
const nameManager = require('./utils/awsmobilejs-name-manager.js')
 
function run(projectInfo, callback){
    awsConfigManager.checkAWSConfig(function(awsDetails){
        let mobile = awsClient.Mobile(awsDetails)
 
        let mobileProjectName = nameManager.generateBackendProjectName(projectInfo)
        inquirer.prompt([
            {
                type: 'input',
                name: 'mobileProjectName',
                message: 'What awsmobile project name would you like to use: ',
                default: mobileProjectName
            }
        ]).then(function (answers) {
            if(answers.mobileProjectName){
    
                let param = {
                    name: answers.mobileProjectName,
                    region: awsDetails.config.region
                }
 
                let spinner = ora('creating backend awsmobile project ' + param.name)
                spinner.start()
                mobile.createProject(param, function(err,data){
                    spinner.stop()
                    if(err){
                        console.log(chalk.red('backend awsmobile project creation error'))
                        awsExceptionHandler.handleMobileException(err)
                    }else if(data && data.details){
                        projectInfo = projectInfoManager.updateBackendProjectDetails(projectInfo, data.details)
                        backendUpdate.updateBackend(projectInfo, data.details, awsDetails, 2, callback)
                    }else{
                        console.log(chalk.red('something went wrong'))
                    }
                })
            } 
        })
    })
}
 
module.exports = {
    run
}