function()

in functions/saml-backend/index.js [24:81]


                function(err, result) {
                    if (err) {
                        callback(null, {
                            "statusCode": 400,
                            "headers": {},
                            "body": JSON.stringify(err['message']),
                            "isBase64Encoded": false
                        })
                        console.error(err['message'])
                    } else {

                        var attrs = result.Response.Assertion[0].AttributeStatement[0].Attribute
                        var domainId
                        var userId
                        attrs.forEach(attr => {
                            switch (attr.$.Name) {
                                case 'domain-id':
                                    console.log('DOMAIN: ' + attr.AttributeValue[0]._)
                                    domainId = attr.AttributeValue[0]._
                                    break;
                                case 'username':
                                    console.log('USER: ' + attr.AttributeValue[0]._)
                                    userId = attr.AttributeValue[0]._
                                    break;
                                default:
                                    console.log(`No Match`);
                            }
                        });
                        var sagemaker = new AWS.SageMaker({ apiVersion: '2017-07-24' });
                        var params = {
                            DomainId: domainId,
                            UserProfileName: userId,
                            ExpiresInSeconds: 5,
                        };

                        sagemaker.createPresignedDomainUrl(params, function(err, data) {
                            if (err) {
                                callback(null, {
                                    "statusCode": err['statusCode'],
                                    "headers": {},
                                    "body": JSON.stringify(err['message']),
                                    "isBase64Encoded": false
                                })
                                console.error(err['message'])
                            } else {
                                var url = data.AuthorizedUrl
                                var response = {
                                    "statusCode": 302,
                                    "headers": {
                                        "Location": url
                                    },
                                    "isBase64Encoded": false
                                };
                                callback(null, response)
                            }
                        });
                    }
                });