async getEvent()

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}".`,
      });
    }
  }