in batchOperations.js [101:182]
function doQuery(setRegion, batchStatus, queryStartDate, queryEndDate, callback) {
init(setRegion);
if (queryStartDate) {
var startDate = getDate(queryStartDate);
}
if (queryEndDate) {
var endDate = getDate(queryEndDate);
}
queryParams = {
TableName: batchTable,
IndexName: batchStatusGSI
};
// add the batch status
var keyConditionExpression = "#s = :batchStatus";
var keyConditionNames = {
"#s": "status"
};
var keyConditionValues = {
":batchStatus": {
'S': batchStatus
}
};
// add the start date, if provided
if (startDate && !endDate) {
keyConditionExpression += " and lastUpdate >= :startDate";
keyConditionValues[":startDate"] = {
"N": "" + startDate
};
} else if (!startDate && endDate) {
keyConditionExpression += " and lastUpdate <= :endDate";
keyConditionValues[":endDate"] = {
"N": "" + endDate
};
} else if (startDate && endDate) {
keyConditionExpression += " and lastUpdate between :startDate and :endDate";
keyConditionValues[":startDate"] = {
"N": "" + startDate
};
keyConditionValues[":endDate"] = {
"N": "" + endDate
};
} // else we have neither so ignore
// add the query expressions to the query item
queryParams.KeyConditionExpression = keyConditionExpression;
queryParams.ExpressionAttributeNames = keyConditionNames;
queryParams.ExpressionAttributeValues = keyConditionValues;
if (debug === true) {
console.log(queryParams);
}
dynamoDB.query(queryParams, function (err, data) {
if (err) {
logger.error(err);
process.exit(ERROR);
} else {
if (data && data.Items) {
var itemsToShow = [];
data.Items.map(function (item) {
toShow = {
s3Prefix: item.s3Prefix.S,
batchId: item.batchId.S,
status: item.status.S,
lastUpdateDate: common.readableTime(item.lastUpdate.N),
lastUpdate: item.lastUpdate.N
};
itemsToShow.push(toShow);
});
callback(null, itemsToShow);
} else {
callback(null, []);
}
}
});
}