in source/services/api/command/lib/command.js [161:211]
async getCommand(ticket, deviceId, commandId) {
const params = {
TableName: process.env.COMMANDS_TBL,
Key: {
deviceId: deviceId,
commandId: commandId,
},
};
const docClient = new AWS.DynamoDB.DocumentClient(this.dynamoConfig);
try {
let validRegistration = await this._validateUserDeviceRegistration(
deviceId,
ticket.sub
);
if (validRegistration) {
let data = await docClient.get(params).promise();
if (!_.isEmpty(data)) {
return Promise.resolve(data.Item);
} else {
return Promise.reject({
code: 400,
error: 'MissingCommand',
message: `The command "${commandId}" for device "${deviceId}" does not exist.`,
});
}
} else {
Logger.error(
Logger.levels.INFO,
`[MissingRegistration] No registration found for device ${deviceId}.`
);
return Promise.reject({
code: 400,
error: 'MissingRegistration',
message: `No registration found for device "${deviceId}".`,
});
}
} catch (err) {
Logger.error(Logger.levels.INFO, err);
Logger.error(
Logger.levels.INFO,
`Error occurred while attempting to retrieve command ${commandId} for device ${deviceId}.`
);
return Promise.reject({
code: 500,
error: 'CommandRetrieveFailure',
message: `Error occurred while attempting to retrieve command "${commandId}" for device "${deviceId}".`,
});
}
}