in src/main/java/com/amazonaws/partners/saasfactory/metering/billing/ProcessBillingEvent.java [81:115]
private boolean putEvent(BillingEvent billingEvent) {
HashMap<String,AttributeValue> item= new HashMap<>();
AttributeValue primaryKeyValue = AttributeValue.builder()
.s(formatTenantEntry(billingEvent.getTenantID()))
.build();
AttributeValue sortKeyValue = AttributeValue.builder()
.s(formatEventEntry(billingEvent.getEventTime()))
.build();
AttributeValue quantityAttributeValue = AttributeValue.builder()
.n(billingEvent.getQuantity().toString())
.build();
item.put(PRIMARY_KEY_NAME, primaryKeyValue);
item.put(SORT_KEY_NAME, sortKeyValue);
item.put(QUANTITY_ATTRIBUTE_NAME, quantityAttributeValue);
PutItemRequest request = PutItemRequest.builder()
.tableName(this.tableConfig.getTableName())
.item(item)
.build();
try {
this.ddb.putItem(request);
} catch (ResourceNotFoundException e) {
this.logger.error("Table {} does not exist", this.tableConfig.getTableName());
return false;
} catch (InternalServerErrorException e) {
this.logger.error(e.getMessage());
return false;
}
return true;
}