function getPreviousContactData()

in cloudformationTemplates/asyncCustomerChatUX/js/startChatContact.js [99:133]


function getPreviousContactData(userId, displayName) {
    // Searches for Chat with the Next Contact ID as CURRENT_CHAT
    return new Promise(function (resolve, reject) {
        var params = {
            TableName: process.env.CHAT_DATA_TABLE,
            IndexName: 'userDisplayHash-nextContactId-index',
            KeyConditionExpression: 'userDisplayHash = :user and nextContactId = :nextContactId',
            ExpressionAttributeValues: {
                ':user': userId + displayName,
                ':nextContactId': 'CURRENT_CHAT'
            }
        };

        docClient.query(params, function(err, results) {
            if (err) {
                console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
                reject();
            } else {
                console.log("Query succeeded.");
                if (results.Items.length > 0) {
                    console.log("Got entry: " + JSON.stringify(results.Items[0]));
                }

                var result = {
                    currentContactId: results.Items.length == 0 ? "INITIAL_CHAT" : results.Items[0].contactId,
                    previousContactId: results.Items.length == 0 ? "INITIAL_CHAT" : results.Items[0].previousContactId,
                    s3Key: results.Items.length == 0 ? "NONE" : results.Items[0].s3Key,
                    startChatResult: results.Items.length == 0 ? "NONE" : JSON.parse(results.Items[0].startChatResult),
                    date: results.Items.length == 0 ? 969135913 : results.Items[0].date
                };
                resolve(result);
            }
        });
    });
}