async _listApplicationAuthorizations()

in source/services/api/admin/lib/admin.js [193:249]


  async _listApplicationAuthorizations(applicationId, lastevalkey) {
    let applicationAuthorizations = [];
    let params = {
      TableName: process.env.AUTHORIZATIONS_TABLE,
      IndexName: 'ApplicationAuthorizations',
      KeyConditionExpression: 'application_id = :appId',
      ExpressionAttributeValues: {
        ':appId': applicationId
      },
      Limit: 500
    };
    
    if (lastevalkey) {
      params.ExclusiveStartKey = lastevalkey;
    }
    let docClient = new AWS.DynamoDB.DocumentClient(this.config);
    try {
      let result = await docClient.query(params).promise();
      result.Items.forEach(function(item) {
        applicationAuthorizations.push({
          'ApiKeyId': item.api_key_id,
          'ApiKeyDescription': item.api_key_description,
          'ApiKeyName': item.api_key_name,
          'ApiKeyValue': item.api_key_value,
          'ApplicationId': item.application_id,
          'UpdatedAt': item.updated_at,
          'CreatedAt': item.created_at,
          'Enabled': item.enabled
        });  
        
      });
      
      // If there is more data, load more data and append them to authorizations
      if (result.LastEvaluatedKey) {
        let moreResult = await this._listApplicationAuthorizations(applicationId, lastevalkey);
        moreResult.Items.forEach(function(item) {
          applicationAuthorizations.push({
            'ApiKeyId': item.api_key_id,
            'ApiKeyDescription': item.api_key_description,
            'ApiKeyName': item.api_key_name,
            'ApiKeyValue': item.api_key_value,
            'ApplicationId': item.application_id,
            'UpdatedAt': item.updated_at,
            'CreatedAt': item.created_at,
            'Enabled': item.enabled
          });
        });
      }
      
      return Promise.resolve({
        'Authorizations': applicationAuthorizations,
        'Count': applicationAuthorizations.length
      });
    } catch (err) {
      return Promise.reject(err);
    }
  }