All files / lib/aws-operations aws-exception-handler.js

7.55% Statements 4/53
0% Branches 0/17
0% Functions 0/6
7.55% Lines 4/53
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                          10x 10x 10x                                                                                                                                                                   10x            
/* 
 * 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 chalk = require('chalk')
const opn = require('opn')
const awsmobileJSConstant = require('../utils/awsmobilejs-constant.js')
 
function handleMobileException(err){
    if(err && err.code && err.code.length > 0){
        switch(err.code){
            case 'UnrecognizedClientException': 
                InvalidUserCredential(err)
            break
            case 'InvalidSignatureException': 
                InvalidSignature(err)
            break;
            case 'UnauthorizedException': 
                UnauthorizedException(err)
            break
            default: 
                Default(err)
            break
        }
    }else{
        Default(err)
    }
}
 
function handleS3Exception(err){
    if(err && err.code && err.code.length > 0){
        switch(err.code){
            case 'InvalidAccessKeyId': 
                InvalidUserCredential(err)
            break
            case 'SignatureDoesNotMatch': 
                InvalidSignature(err)
            break
            default: 
                Default(err)
            break
        }
    }else{
        Default(err)
    }
}
 
function InvalidUserCredential(err){
    console.log()
    console.log('the security token included in the request is invalid')
    console.log()
    console.log(err)
    console.log()
    console.log('Visit the following address to setup your aws account/user credentials:')
    console.log(chalk.green(awsmobileJSConstant.AWSCreateIAMUsersUrl))
    opn(awsmobileJSConstant.AWSCreateIAMUsersUrl, {wait: false})
    console.log()
    console.log(chalk.gray('# to set up the credentials for the awsmobile-cli'))
    console.log('    $ awsmobile configure aws')
    process.exit(4)
}
 
function InvalidSignature(err){
    console.log()
    console.log('Invalid Signature')
    console.log()
    console.log(err)
    console.log()
    console.log(chalk.gray('# to change the configuration for the awsmobile-cli'))
    console.log('    $ awsmobile configure aws')
    process.exit(3)
}
 
function UnauthorizedException(err){
    console.log()
    console.log(err)
    console.log()
    console.log('You must enable Mobile Hub service role before using the awsmobile cli')
    console.log(chalk.green(awsmobileJSConstant.AWSEnableMobileRoleUrl))
    opn(awsmobileJSConstant.AWSEnableMobileRoleUrl, {wait: false})
    process.exit(2)
}
 
function Default(err){
    console.log(err)
    process.exit(1)
}
 
module.exports = {
    handleMobileException,
    handleS3Exception
}