Search in sources :

Example 1 with UsageApiException

use of org.killbill.billing.usage.api.UsageApiException in project killbill by killbill.

the class DefaultUsageUserApi method recordRolledUpUsage.

@Override
public void recordRolledUpUsage(final SubscriptionUsageRecord record, final CallContext callContext) throws UsageApiException {
    final InternalCallContext internalCallContext = internalCallContextFactory.createInternalCallContext(record.getSubscriptionId(), ObjectType.SUBSCRIPTION, callContext);
    // check if we have (at least) one row with the supplied tracking id
    if (!Strings.isNullOrEmpty(record.getTrackingId()) && recordsWithTrackingIdExist(record, internalCallContext)) {
        throw new UsageApiException(ErrorCode.USAGE_RECORD_TRACKING_ID_ALREADY_EXISTS, record.getTrackingId());
    }
    final List<RolledUpUsageModelDao> usages = new ArrayList<RolledUpUsageModelDao>();
    for (final UnitUsageRecord unitUsageRecord : record.getUnitUsageRecord()) {
        for (final UsageRecord usageRecord : unitUsageRecord.getDailyAmount()) {
            usages.add(new RolledUpUsageModelDao(record.getSubscriptionId(), unitUsageRecord.getUnitType(), usageRecord.getDate(), usageRecord.getAmount(), record.getTrackingId()));
        }
    }
    rolledUpUsageDao.record(usages, internalCallContext);
}
Also used : UnitUsageRecord(org.killbill.billing.usage.api.UnitUsageRecord) SubscriptionUsageRecord(org.killbill.billing.usage.api.SubscriptionUsageRecord) UnitUsageRecord(org.killbill.billing.usage.api.UnitUsageRecord) UsageRecord(org.killbill.billing.usage.api.UsageRecord) ArrayList(java.util.ArrayList) InternalCallContext(org.killbill.billing.callcontext.InternalCallContext) RolledUpUsageModelDao(org.killbill.billing.usage.dao.RolledUpUsageModelDao) UsageApiException(org.killbill.billing.usage.api.UsageApiException)

Aggregations

ArrayList (java.util.ArrayList)1 InternalCallContext (org.killbill.billing.callcontext.InternalCallContext)1 SubscriptionUsageRecord (org.killbill.billing.usage.api.SubscriptionUsageRecord)1 UnitUsageRecord (org.killbill.billing.usage.api.UnitUsageRecord)1 UsageApiException (org.killbill.billing.usage.api.UsageApiException)1 UsageRecord (org.killbill.billing.usage.api.UsageRecord)1 RolledUpUsageModelDao (org.killbill.billing.usage.dao.RolledUpUsageModelDao)1