private Optional getRow()

in library/src/main/java/org/apache/fineract/cn/anubis/repository/TenantAuthorizationDataRepository.java [293:309]


  private Optional<Row> getRow(final @Nonnull String timestamp) {
    final Session tenantSession = cassandraSessionProvider.getTenantSession();
    final Select.Where query = timestampToSignatureQueryMap.computeIfAbsent(timestamp, timestampKey ->
            QueryBuilder.select().from(tableName).where(QueryBuilder.eq(TIMESTAMP_COLUMN, timestampKey)));
    try {
      final Row row = tenantSession.execute(query).one();
      final Optional<Row> ret = Optional.ofNullable(row);
      ret.map(TenantAuthorizationDataRepository::mapRowToValid).ifPresent(valid -> {
        if (!valid)
          logger.warn("Invalidated keyset for timestamp '" + timestamp + "' requested. Pretending no keyset exists.");
      });
      return ret.filter(TenantAuthorizationDataRepository::mapRowToValid);
    }
    catch (final InvalidQueryException authorizationDataTableProbablyIsntConfiguredYet) {
      throw new IllegalArgumentException("Tenant not found.");
    }
  }