retrieveData()

in application/scoreboard/js/scoreboard.kinesisinherited.js [72:122]


    retrieveData(callback) {
        var self = this;
        if (this.updateHasFinished) {
            if (this.currentShardIterator) {
                var params = {
                    ShardIterator: self.currentShardIterator
                };
                self.kinesis.getRecords(params, function (err, data) {
                    if (err) {
                        console.log(err.code);
                        console.log(err);
                        switch(err.code) {
                            case "ExpiredIteratorException":
                                self.getInitializeShardIteratorFunction()();
                                callback(null,null);
                                break;
                            case "CredentialsError": 
                                self.awsfacade.refreshSession((err,data) => {
                                    if (err) {
                                        console.log(err.code);
                                        console.log(err);
                                        console.log("FAILURE REFRESHING SESSION");
                                        callback(err,null);
                                    } else {
                                        // initialize services with new credentials
                                        console.log("SESSION CREDENTIALS refreshed")
                                        self.initializeAWSServices();
                                        callback(null,data);
                                    }
                                });
                                break;
                            default:
                                callback(err,null);
                        };
                    }
                    else {
                        if (data) {
                            if (data.Records && data.Records.length > 0) 
                                self.updateScoreboard(data.Records);
                            self.currentShardIterator = data.NextShardIterator;
                            callback(null,data);
                        }
                    }
                });
            } else {
                var err = new Error("CurrentShardIterator is null.");
                err.code = "NullShardIterator";
                callback(err,null);
            }
        } else callback(null,null);
    };