in source/services/notification/lib/alert.js [134:173]
async _getDeviceRegistration(deviceId) {
let _keyConditionExpression = 'deviceId = :did';
let _expressionAttributeValues = {
':did': deviceId,
};
const params = {
TableName: process.env.REGISTRATION_TBL,
IndexName: 'deviceId-index',
KeyConditionExpression: _keyConditionExpression,
ExpressionAttributeValues: _expressionAttributeValues,
};
const docClient = new AWS.DynamoDB.DocumentClient(this.dynamoConfig);
try {
let data = await docClient.query(params).promise();
if (data.Items.length === 0) {
return Promise.resolve(false);
}
let devices = data.Items.filter(device => device.status !== 'deleted');
if (devices.length > 0) {
return Promise.resolve(devices[0]);
} else {
return Promise.resolve(false);
}
} catch (err) {
Logger.error(Logger.levels.INFO, err);
Logger.error(
Logger.levels.INFO,
`[RegistrationRetrieveFailure] Error occurred while attempting to retrieve registration information for device ${deviceId}.`
);
return Promise.reject({
code: 500,
error: 'RegistrationRetrieveFailure',
message: `Error occurred while attempting to retrieve registration information for device "${deviceId}".`,
});
}
}