in source/services/api/event/lib/event.js [158:207]
async getEvent(ticket, deviceId, eventId) {
const params = {
TableName: process.env.EVENTS_TBL,
Key: {
deviceId: deviceId,
id: eventId,
},
};
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: 'MissingEvent',
message: `The event "${eventId}" 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 event ${eventId} for device ${deviceId}.`
);
return Promise.reject({
code: 500,
error: 'EventRetrieveFailure',
message: `Error occurred while attempting to retrieve event "${eventId}" for device "${deviceId}".`,
});
}
}