1.1.0 • Published 7 years ago

angular-aws v1.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

angular-aws

Angular AWS login and services integration

Install

Include require files

<script src="dist/angular-aws-lib.js"></script>
<script src="dist/angular-aws.min.js"></script>

Load module in your angular app

var yourApp = angular.module('yourApp', ['angular-aws']);

Configure

configure $AWSProvider in your app.config

yourApp.config(function($AWSProvider) {

	$AWSProvider.setRegion('us-east-1');
	$AWSProvider.poolData = {
	    UserPoolId : '', // your user pool id here
	    ClientId : '' // your client id here
	};
	$AWSProvider.cognitoLoginId = ''; // your cognito login id here
	$AWSProvider.identityPoolId = ''; //go to AWS Cognito Federated Identites
	$AWSProvider.userAttributes = ['email', 'phone_number' ]; //the standard attributes you require in AWS Cognito
	$AWSProvider.SESSource = ''; //email from
	$AWSProvider.MFARequired = false; //do you require your clients to use MFA?

});

Services

Cognito

$scope.initCognito = function(){
    Cognito.initialize($scope.user, $scope.pass, [{Name:"email", Value:$scope.email},{Name:"phone_number",Value:$scope.tel}]);
};

$scope.register = function(){
    Cognito.register($scope.user,$scope.pass,[{Name:"email", Value:$scope.email},{Name:"phone_number",Value:$scope.tel}],
        function(success,data){
            if(success) console.log(data);
            else console.error(data);
        }
    );
};

$scope.authenticate = function(){
    Cognito.authenticate($scope.user, $scope.pass,
        function(success,data){
            if(success){
                console.log(data);
            }else{
                console.error(data);
            }
    });
};

$scope.attributes = function(e){
    Cognito.getUserAttributes(function(success,data){
        console.log(data);
    });
};

$scope.exit = function(e){
    Cognito.signOut();
}
$scope.read = function(e){
    Cognito.getSession();
}

DynamoDB

$scope.read = function(){
    var readparams = {
      Key: {
        id: {S: 'f95217c0-8ca8-11e6-9bff-b3956a3b4954'}
      },
      AttributesToGet: ['name'],
      TableName: 'testtable'
    };
    DynamoDB.read(readparams, function(success,data){
        if(success) console.log(data);
        else console.error(data);
    });
}

$scope.write = function(){
    var data = {
        "id": DynamoDB.getguid(),
        "name":$scope.name,
        "year":$scope.year,
        "value":$scope.value,
        "values":$scope.values,
        "data": new Date().toLocaleString()
    }
    DynamoDB.write("testtable", data, function(success,data){
        if(success) console.log(data);
        else console.error(data);
    });
}

$scope.find = function(){

    var params = {
        TableName : "testtable",
        ProjectionExpression: "#yr,#id,#name,#value",
        FilterExpression: "#yr = :yyyy",
        ExpressionAttributeNames: {
            "#yr": "year",
            "#id": "id",
            "#name": "name",
            "#value": "value"
        },
        ExpressionAttributeValues: {
             ":yyyy": "2015"
        }
    };

    function onScan(err, data) {
        if (err) {
                console.error("Unable to query" + err);
        } else {
                console.log("Query succeeded.");
                console.log(data);
                if (typeof data.LastEvaluatedKey != "undefined") {
                        console.log("Scanning for more...");
                        params.ExclusiveStartKey = data.LastEvaluatedKey;
                        DynamoDB.scan(params, onScan);
                }
        }
    }

    DynamoDB.scan(params, onScan);
}

S3

$scope.upload = function(e){
    var fileChooser = document.getElementById('file-chooser');
    var button = document.getElementById('upload-button');
    var results = document.getElementById('results');

    var file = fileChooser.files[0];

    if (file) {
        results.innerHTML = '';
        var filename = file.name;

        S3.upload('test-bucket', filename, file, function(status){
            results.innerHTML = !status ? 'ERROR!' : 'UPLOADED.';
        });

    } else {
      results.innerHTML = 'Nothing to upload.';
    }
}

SES

$scope.emailrecipe = "";
$scope.sendEmail = function(){
	var object = "test";
	var msg = "test message";
	SES.sendEmail($scope.emailrecipe, object, msg, function(status, data){
		if(!status) console.error(data);
	})
}

Lambda

$scope.functionName = "";
$scope.execFunction = function(){
	Lambda.invoke($scope.functionName, function(status, data){
		if(!status) console.error(data);
		else console.log(data);
	}, {test: "testone", test2: "testtwo"})
}