killbill-aplcache
Changes
beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationWithCatalogUpdate.java 2(+1 -1)
payment/src/main/java/org/killbill/billing/payment/core/sm/control/ControlPluginRunner.java 2(+1 -1)
Details
diff --git a/account/src/test/java/org/killbill/billing/account/api/user/TestDefaultAccountUserApi.java b/account/src/test/java/org/killbill/billing/account/api/user/TestDefaultAccountUserApi.java
index 041c18b..f5d36ef 100644
--- a/account/src/test/java/org/killbill/billing/account/api/user/TestDefaultAccountUserApi.java
+++ b/account/src/test/java/org/killbill/billing/account/api/user/TestDefaultAccountUserApi.java
@@ -451,7 +451,7 @@ public class TestDefaultAccountUserApi extends AccountTestSuiteWithEmbeddedDB {
final TenantSqlDao tenantSqlDao = dbi.onDemand(TenantSqlDao.class);
final TenantModelDao tenant2 = new TenantModelDao();
tenantSqlDao.create(tenant2, internalCallContext);
- final CallContext callContext2 = new DefaultCallContext(tenant2.getId(), callContext.getUserName(), callContext.getCallOrigin(), callContext.getUserType(), callContext.getUserToken(), clock);
+ final CallContext callContext2 = new DefaultCallContext(account1.getId(), tenant2.getId(), callContext.getUserName(), callContext.getCallOrigin(), callContext.getUserType(), callContext.getUserToken(), clock);
final Account account2 = accountUserApi.createAccount(accountData, callContext2);
Assert.assertEquals(account1.getExternalKey(), account2.getExternalKey());
diff --git a/api/src/main/java/org/killbill/billing/callcontext/CallContextBase.java b/api/src/main/java/org/killbill/billing/callcontext/CallContextBase.java
index de8c027..2f5b334 100644
--- a/api/src/main/java/org/killbill/billing/callcontext/CallContextBase.java
+++ b/api/src/main/java/org/killbill/billing/callcontext/CallContextBase.java
@@ -26,6 +26,7 @@ import org.killbill.billing.util.callcontext.UserType;
public abstract class CallContextBase implements CallContext {
+ protected final UUID accountId;
protected final UUID tenantId;
protected final UUID userToken;
protected final String userName;
@@ -34,16 +35,17 @@ public abstract class CallContextBase implements CallContext {
protected final String reasonCode;
protected final String comments;
- public CallContextBase(@Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType) {
- this(tenantId, userName, callOrigin, userType, null);
+ public CallContextBase(@Nullable final UUID accountId, @Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType) {
+ this(accountId, tenantId, userName, callOrigin, userType, null);
}
- public CallContextBase(@Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType, final UUID userToken) {
- this(tenantId, userName, callOrigin, userType, null, null, userToken);
+ public CallContextBase(@Nullable final UUID accountId, @Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType, final UUID userToken) {
+ this(accountId, tenantId, userName, callOrigin, userType, null, null, userToken);
}
- public CallContextBase(@Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType,
+ public CallContextBase(@Nullable final UUID accountId, @Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType,
final String reasonCode, final String comment, final UUID userToken) {
+ this.accountId = accountId;
this.tenantId = tenantId;
this.userName = userName;
this.callOrigin = callOrigin;
@@ -54,6 +56,11 @@ public abstract class CallContextBase implements CallContext {
}
@Override
+ public UUID getAccountId() {
+ return accountId;
+ }
+
+ @Override
public UUID getTenantId() {
return tenantId;
}
diff --git a/api/src/main/java/org/killbill/billing/callcontext/DefaultCallContext.java b/api/src/main/java/org/killbill/billing/callcontext/DefaultCallContext.java
index d96ceb1..865f58f 100644
--- a/api/src/main/java/org/killbill/billing/callcontext/DefaultCallContext.java
+++ b/api/src/main/java/org/killbill/billing/callcontext/DefaultCallContext.java
@@ -29,31 +29,31 @@ public class DefaultCallContext extends CallContextBase {
private final DateTime createdDate;
private final DateTime updateDate;
- public DefaultCallContext(final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType,
+ public DefaultCallContext(final UUID accountId, final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType,
final UUID userToken, final Clock clock) {
- super(tenantId, userName, callOrigin, userType, userToken);
+ super(accountId, tenantId, userName, callOrigin, userType, userToken);
this.createdDate = clock.getUTCNow();
this.updateDate = createdDate;
}
- public DefaultCallContext(final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType,
+ public DefaultCallContext(final UUID accountId, final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType,
final String reasonCode, final String comment,
final UUID userToken, final Clock clock) {
- super(tenantId, userName, callOrigin, userType, reasonCode, comment, userToken);
+ super(accountId, tenantId, userName, callOrigin, userType, reasonCode, comment, userToken);
this.createdDate = clock.getUTCNow();
this.updateDate = createdDate;
}
- public DefaultCallContext(final UUID tenantId, final String userName, final DateTime createdDate, final String reasonCode,
+ public DefaultCallContext(final UUID accountId, final UUID tenantId, final String userName, final DateTime createdDate, final String reasonCode,
final String comment, final UUID userToken) {
- super(tenantId, userName, null, null, reasonCode, comment, userToken);
+ super(accountId, tenantId, userName, null, null, reasonCode, comment, userToken);
this.createdDate = createdDate;
this.updateDate = createdDate;
}
- public DefaultCallContext(final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType, final String reasonCode,
+ public DefaultCallContext(final UUID accountId, final UUID tenantId, final String userName, final CallOrigin callOrigin, final UserType userType, final String reasonCode,
final String comment, final UUID userToken, final DateTime createdDate, final DateTime updatedDate) {
- super(tenantId, userName, callOrigin, userType, reasonCode, comment, userToken);
+ super(accountId, tenantId, userName, callOrigin, userType, reasonCode, comment, userToken);
this.createdDate = createdDate;
this.updateDate = updatedDate;
}
@@ -72,7 +72,9 @@ public class DefaultCallContext extends CallContextBase {
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("CallContextBase");
- sb.append("{userToken=").append(userToken);
+ sb.append("{accountId=").append(accountId);
+ sb.append(", tenantId='").append(tenantId).append('\'');
+ sb.append(", userToken='").append(userToken).append('\'');
sb.append(", userName='").append(userName).append('\'');
sb.append(", callOrigin=").append(callOrigin);
sb.append(", userType=").append(userType);
@@ -95,6 +97,12 @@ public class DefaultCallContext extends CallContextBase {
final DefaultCallContext that = (DefaultCallContext) o;
+ if (accountId != null ? !accountId.equals(that.accountId) : that.accountId != null) {
+ return false;
+ }
+ if (tenantId != null ? !tenantId.equals(that.tenantId) : that.tenantId != null) {
+ return false;
+ }
if (callOrigin != that.callOrigin) {
return false;
}
@@ -116,13 +124,14 @@ public class DefaultCallContext extends CallContextBase {
if (userType != that.userType) {
return false;
}
-
return true;
}
@Override
public int hashCode() {
- int result = userToken != null ? userToken.hashCode() : 0;
+ int result = accountId != null ? accountId.hashCode() : 0;
+ result = 31 * result + (tenantId != null ? tenantId.hashCode() : 0);
+ result = 31 * result + (userToken != null ? userToken.hashCode() : 0);
result = 31 * result + (userName != null ? userName.hashCode() : 0);
result = 31 * result + (callOrigin != null ? callOrigin.hashCode() : 0);
result = 31 * result + (userType != null ? userType.hashCode() : 0);
diff --git a/api/src/main/java/org/killbill/billing/callcontext/DefaultTenantContext.java b/api/src/main/java/org/killbill/billing/callcontext/DefaultTenantContext.java
index dc95d42..71873cd 100644
--- a/api/src/main/java/org/killbill/billing/callcontext/DefaultTenantContext.java
+++ b/api/src/main/java/org/killbill/billing/callcontext/DefaultTenantContext.java
@@ -24,13 +24,20 @@ import org.killbill.billing.util.callcontext.TenantContext;
public class DefaultTenantContext implements TenantContext {
+ private final UUID accountId;
private final UUID tenantId;
- public DefaultTenantContext(@Nullable final UUID tenantId) {
+ public DefaultTenantContext(@Nullable final UUID accountId, @Nullable final UUID tenantId) {
+ this.accountId = accountId;
this.tenantId = tenantId;
}
@Override
+ public UUID getAccountId() {
+ return accountId;
+ }
+
+ @Override
public UUID getTenantId() {
return tenantId;
}
@@ -39,6 +46,7 @@ public class DefaultTenantContext implements TenantContext {
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("DefaultTenantContext");
+ sb.append("{accountId=").append(accountId);
sb.append("{tenantId=").append(tenantId);
sb.append('}');
return sb.toString();
@@ -55,6 +63,9 @@ public class DefaultTenantContext implements TenantContext {
final DefaultTenantContext that = (DefaultTenantContext) o;
+ if (accountId != null ? !accountId.equals(that.accountId) : that.accountId != null) {
+ return false;
+ }
if (tenantId != null ? !tenantId.equals(that.tenantId) : that.tenantId != null) {
return false;
}
@@ -64,6 +75,8 @@ public class DefaultTenantContext implements TenantContext {
@Override
public int hashCode() {
- return tenantId != null ? tenantId.hashCode() : 0;
+ int result = accountId != null ? accountId.hashCode() : 0;
+ result = 31 * result + (tenantId != null ? tenantId.hashCode() : 0);
+ return result;
}
}
diff --git a/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java b/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java
index 7c9b1cd..2957884 100644
--- a/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java
+++ b/api/src/main/java/org/killbill/billing/callcontext/InternalCallContext.java
@@ -104,8 +104,8 @@ public class InternalCallContext extends InternalTenantContext {
// TODO should not be needed if all services are using internal API
// Unfortunately not true as some APIs ae hidden in object -- e.g OverdueStateApplicator is doing subscription.cancelEntitlementWithDateOverrideBillingPolicy
- public CallContext toCallContext(final UUID tenantId) {
- return new DefaultCallContext(tenantId, createdBy, callOrigin, contextUserType, reasonCode, comments, userToken, createdDate, updatedDate);
+ public CallContext toCallContext(final UUID accountId, final UUID tenantId) {
+ return new DefaultCallContext(accountId, tenantId, createdBy, callOrigin, contextUserType, reasonCode, comments, userToken, createdDate, updatedDate);
}
public UUID getUserToken() {
@@ -148,7 +148,9 @@ public class InternalCallContext extends InternalTenantContext {
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("InternalCallContext");
- sb.append("{userToken=").append(userToken);
+ sb.append("{accountRecordId=").append(accountRecordId);
+ sb.append(", tenantRecordId=").append(tenantRecordId);
+ sb.append(", userToken=").append(userToken);
sb.append(", createdBy='").append(createdBy).append('\'');
sb.append(", updatedBy='").append(updatedBy).append('\'');
sb.append(", callOrigin=").append(callOrigin);
diff --git a/api/src/main/java/org/killbill/billing/callcontext/InternalTenantContext.java b/api/src/main/java/org/killbill/billing/callcontext/InternalTenantContext.java
index 8880c72..c9c5399 100644
--- a/api/src/main/java/org/killbill/billing/callcontext/InternalTenantContext.java
+++ b/api/src/main/java/org/killbill/billing/callcontext/InternalTenantContext.java
@@ -47,8 +47,8 @@ public class InternalTenantContext extends TimeAwareContext {
this(defaultTenantRecordId, null, null, null);
}
- public TenantContext toTenantContext(final UUID tenantId) {
- return new DefaultTenantContext(tenantId);
+ public TenantContext toTenantContext(final UUID accountId, final UUID tenantId) {
+ return new DefaultTenantContext(accountId, tenantId);
}
public Long getAccountRecordId() {
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationWithCatalogUpdate.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationWithCatalogUpdate.java
index bce98f5..a57824b 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationWithCatalogUpdate.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestIntegrationWithCatalogUpdate.java
@@ -421,7 +421,7 @@ public class TestIntegrationWithCatalogUpdate extends TestIntegrationBase {
// Only place where we use callContext
tenant = tenantUserApi.createTenant(new DefaultTenant(uuid, init, init, externalKey, apiKey, apiSecret), callContext);
- testCallContext = new DefaultCallContext(tenant.getId(), "tester", CallOrigin.EXTERNAL, UserType.TEST,
+ testCallContext = new DefaultCallContext(null, tenant.getId(), "tester", CallOrigin.EXTERNAL, UserType.TEST,
"good reason", "trust me", uuid, clock);
}
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestPublicBus.java b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestPublicBus.java
index 353ae0d..606d7dc 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestPublicBus.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/integration/TestPublicBus.java
@@ -204,10 +204,10 @@ public class TestPublicBus extends TestIntegrationBase {
public void testTenantKVChange() throws Exception {
final TenantData tenantData = new DefaultTenant(null, clock.getUTCNow(), clock.getUTCNow(), "MY_TENANT", "key", "s3Cr3T");
- final CallContext contextWithNoTenant = new DefaultCallContext(null, "loulou", CallOrigin.EXTERNAL, UserType.ADMIN, "no reason", "hum", UUID.randomUUID(), clock);
+ final CallContext contextWithNoTenant = new DefaultCallContext(null, null, "loulou", CallOrigin.EXTERNAL, UserType.ADMIN, "no reason", "hum", UUID.randomUUID(), clock);
final Tenant tenant = tenantUserApi.createTenant(tenantData, contextWithNoTenant);
- final CallContext contextWithTenant = new DefaultCallContext(tenant.getId(), "loulou", CallOrigin.EXTERNAL, UserType.ADMIN, "no reason", "hum", UUID.randomUUID(), clock);
+ final CallContext contextWithTenant = new DefaultCallContext(null, tenant.getId(), "loulou", CallOrigin.EXTERNAL, UserType.ADMIN, "no reason", "hum", UUID.randomUUID(), clock);
final String tenantKey = TenantKey.PLUGIN_CONFIG_ + "FOO";
tenantUserApi.addTenantKeyValue(tenantKey, "FOO", contextWithTenant);
diff --git a/beatrix/src/test/java/org/killbill/billing/beatrix/util/SubscriptionChecker.java b/beatrix/src/test/java/org/killbill/billing/beatrix/util/SubscriptionChecker.java
index d46e1d5..99ce404 100644
--- a/beatrix/src/test/java/org/killbill/billing/beatrix/util/SubscriptionChecker.java
+++ b/beatrix/src/test/java/org/killbill/billing/beatrix/util/SubscriptionChecker.java
@@ -69,7 +69,7 @@ public class SubscriptionChecker {
public SubscriptionBase checkSubscriptionCreated(final UUID subscriptionId, final InternalCallContext context) throws SubscriptionBaseApiException {
final UUID tenantId = nonEntityDao.retrieveIdFromObject(context.getTenantRecordId(), ObjectType.TENANT, objectIdCacheController);
- final CallContext callContext = context.toCallContext(tenantId);
+ final CallContext callContext = context.toCallContext(null, tenantId);
final SubscriptionBase subscription = subscriptionApi.getSubscriptionFromId(subscriptionId, context);
Assert.assertNotNull(subscription);
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java b/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
index 98fc4b3..170933f 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/api/user/TestDefaultInvoiceUserApi.java
@@ -138,7 +138,7 @@ public class TestDefaultInvoiceUserApi extends InvoiceTestSuiteWithEmbeddedDB {
((ClockMock) clock).addDays(1);
// Sleep at least one sec to make sure created_date for the external charge is different than the created date for the invoice itself
- CallContext newCallContextLater = new DefaultCallContext(callContext.getTenantId(), callContext.getUserName(), callContext.getCallOrigin(), callContext.getUserType(), callContext.getUserToken(), clock);
+ CallContext newCallContextLater = new DefaultCallContext(accountId, callContext.getTenantId(), callContext.getUserName(), callContext.getCallOrigin(), callContext.getUserType(), callContext.getUserToken(), clock);
// Post an external charge
final BigDecimal externalChargeAmount = BigDecimal.TEN;
final InvoiceItem externalCharge = new ExternalChargeInvoiceItem(invoiceId, accountId, null, UUID.randomUUID().toString(), clock.getUTCToday(), externalChargeAmount, accountCurrency);
diff --git a/invoice/src/test/java/org/killbill/billing/invoice/proRations/InvoiceTestUtils.java b/invoice/src/test/java/org/killbill/billing/invoice/proRations/InvoiceTestUtils.java
index fc5f88b..693d0b7 100644
--- a/invoice/src/test/java/org/killbill/billing/invoice/proRations/InvoiceTestUtils.java
+++ b/invoice/src/test/java/org/killbill/billing/invoice/proRations/InvoiceTestUtils.java
@@ -82,7 +82,7 @@ public class InvoiceTestUtils {
final UUID invoiceId = UUID.randomUUID();
final UUID accountId;
try {
- final Account account = testInvoiceHelper.createAccount(internalCallContext.toCallContext(null));
+ final Account account = testInvoiceHelper.createAccount(internalCallContext.toCallContext(null,null));
accountId = account.getId();
} catch (final AccountApiException e) {
Assert.fail(e.getMessage());
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
index b9ab2f0..e7276f2 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AccountResource.java
@@ -185,13 +185,14 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve an account by id", response = AccountJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getAccount(@PathParam("accountId") final String accountId,
+ public Response getAccount(@PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_ACCOUNT_WITH_BALANCE) @DefaultValue("false") final Boolean accountWithBalance,
@QueryParam(QUERY_ACCOUNT_WITH_BALANCE_AND_CBA) @DefaultValue("false") final Boolean accountWithBalanceAndCBA,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final TenantContext tenantContext = context.createContext(request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), tenantContext);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
+ final Account account = accountUserApi.getAccountById(accountId, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(account.getId(), auditMode.getLevel(), tenantContext);
final AccountJson accountJson = getAccount(account, accountWithBalance, accountWithBalanceAndCBA, accountAuditLogs, tenantContext);
return Response.status(Status.OK).entity(accountJson).build();
@@ -209,7 +210,7 @@ public class AccountResource extends JaxRsResourceBase {
@QueryParam(QUERY_ACCOUNT_WITH_BALANCE_AND_CBA) @DefaultValue("false") final Boolean accountWithBalanceAndCBA,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<Account> accounts = accountUserApi.getAccounts(offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(AccountResource.class, "getAccounts", accounts.getNextOffset(), limit, ImmutableMap.<String, String>of(QUERY_ACCOUNT_WITH_BALANCE, accountWithBalance.toString(),
QUERY_ACCOUNT_WITH_BALANCE_AND_CBA, accountWithBalanceAndCBA.toString(),
@@ -239,7 +240,7 @@ public class AccountResource extends JaxRsResourceBase {
@QueryParam(QUERY_ACCOUNT_WITH_BALANCE_AND_CBA) @DefaultValue("false") final Boolean accountWithBalanceAndCBA,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<Account> accounts = accountUserApi.searchAccounts(searchKey, offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(AccountResource.class, "searchAccounts", accounts.getNextOffset(), limit, ImmutableMap.<String, String>of("searchKey", searchKey,
QUERY_ACCOUNT_WITH_BALANCE, accountWithBalance.toString(),
@@ -264,19 +265,19 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve bundles for account", response = BundleJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getAccountBundles(@PathParam("accountId") final String accountId,
+ public Response getAccountBundles(@PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_EXTERNAL_KEY) final String externalKey,
@QueryParam(QUERY_BUNDLES_FILTER) final String bundlesFilter,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, SubscriptionApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
- final UUID uuid = UUID.fromString(accountId);
- final Account account = accountUserApi.getAccountById(uuid, tenantContext);
+ final Account account = accountUserApi.getAccountById(accountId, tenantContext);
final List<SubscriptionBundle> bundles = (externalKey != null) ?
- subscriptionApi.getSubscriptionBundlesForAccountIdAndExternalKey(uuid, externalKey, tenantContext) :
- subscriptionApi.getSubscriptionBundlesForAccountId(uuid, tenantContext);
+ subscriptionApi.getSubscriptionBundlesForAccountIdAndExternalKey(accountId, externalKey, tenantContext) :
+ subscriptionApi.getSubscriptionBundlesForAccountId(accountId, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(account.getId(), auditMode.getLevel(), tenantContext);
@@ -319,7 +320,7 @@ public class AccountResource extends JaxRsResourceBase {
@QueryParam(QUERY_ACCOUNT_WITH_BALANCE_AND_CBA) @DefaultValue("false") final Boolean accountWithBalanceAndCBA,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Account account = accountUserApi.getAccountByKey(externalKey, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(account.getId(), auditMode.getLevel(), tenantContext);
final AccountJson accountJson = getAccount(account, accountWithBalance, accountWithBalanceAndCBA, accountAuditLogs, tenantContext);
@@ -355,7 +356,7 @@ public class AccountResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json, "AccountJson body should be specified");
final AccountData data = json.toAccount(null);
- final Account account = accountUserApi.createAccount(data, context.createContext(createdBy, reason, comment, request));
+ final Account account = accountUserApi.createAccount(data, context.createCallContextNoAccountId(createdBy, reason, comment, request));
return uriBuilder.buildResponse(uriInfo, AccountResource.class, "getAccount", account.getId(), request);
}
@@ -367,7 +368,7 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Update account")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account data supplied")})
public Response updateAccount(final AccountJson json,
- @PathParam("accountId") final String accountId,
+ @PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_ACCOUNT_TREAT_NULL_AS_RESET) @DefaultValue("false") final Boolean treatNullValueAsReset,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@@ -375,14 +376,14 @@ public class AccountResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
verifyNonNullOrEmpty(json, "AccountJson body should be specified");
- final UUID uuid = UUID.fromString(accountId);
- final Account data = json.toAccount(uuid);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final Account data = json.toAccount(accountId);
if (treatNullValueAsReset) {
- accountUserApi.updateAccount(data, context.createContext(createdBy, reason, comment, request));
+ accountUserApi.updateAccount(data, context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request));
} else {
- accountUserApi.updateAccount(uuid, data, context.createContext(createdBy, reason, comment, request));
+ accountUserApi.updateAccount(accountId, data, context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request));
}
- return getAccount(accountId, false, false, new AuditMode(AuditLevel.NONE.toString()), request);
+ return getAccount(accountIdStr, false, false, new AuditMode(AuditLevel.NONE.toString()), request);
}
// Not supported
@@ -413,13 +414,14 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve account timeline", response = AccountTimelineJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getAccountTimeline(@PathParam("accountId") final String accountIdString,
+ public Response getAccountTimeline(@PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@QueryParam(QUERY_PARALLEL) @DefaultValue("false") final Boolean parallel,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, PaymentApiException, SubscriptionApiException, InvoiceApiException, CatalogApiException {
- final TenantContext tenantContext = context.createContext(request);
- final UUID accountId = UUID.fromString(accountIdString);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
+
final Account account = accountUserApi.getAccountById(accountId, tenantContext);
final Callable<List<SubscriptionBundle>> bundlesCallable = new Callable<List<SubscriptionBundle>>() {
@@ -566,10 +568,11 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve account email notification", response = InvoiceEmailJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getEmailNotificationsForAccount(@PathParam("accountId") final String accountId,
+ public Response getEmailNotificationsForAccount(@PathParam("accountId") final String accountIdStr,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), context.createContext(request));
- final InvoiceEmailJson invoiceEmailJson = new InvoiceEmailJson(accountId, account.isNotifiedForInvoices());
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final Account account = accountUserApi.getAccountById(accountId, context.createTenantContextWithAccountId(accountId, request));
+ final InvoiceEmailJson invoiceEmailJson = new InvoiceEmailJson(accountIdStr, account.isNotifiedForInvoices());
return Response.status(Status.OK).entity(invoiceEmailJson).build();
}
@@ -583,16 +586,16 @@ public class AccountResource extends JaxRsResourceBase {
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
public Response setEmailNotificationsForAccount(final InvoiceEmailJson json,
- @PathParam("accountId") final String accountIdString,
+ @PathParam("accountId") final String accountIdStr,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
verifyNonNullOrEmpty(json, "InvoiceEmailJson body should be specified");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final UUID accountId = UUID.fromString(accountIdString);
final Account account = accountUserApi.getAccountById(accountId, callContext);
final MutableAccountData mutableAccountData = account.toMutableAccountData();
@@ -612,14 +615,14 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Rebalance account CBA")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response rebalanceExistingCBAOnAccount(@PathParam("accountId") final String accountIdString,
+ public Response rebalanceExistingCBAOnAccount(@PathParam("accountId") final String accountIdStr,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
- final UUID accountId = UUID.fromString(accountIdString);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
invoiceApi.consumeExstingCBAOnAccountWithUnpaidInvoices(accountId, callContext);
return Response.status(Status.OK).build();
@@ -637,16 +640,17 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve account invoices", response = InvoiceJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getInvoices(@PathParam("accountId") final String accountIdString,
+ public Response getInvoices(@PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_INVOICE_WITH_ITEMS) @DefaultValue("false") final boolean withItems,
@QueryParam(QUERY_WITH_MIGRATION_INVOICES) @DefaultValue("false") final boolean withMigrationInvoices,
@QueryParam(QUERY_UNPAID_INVOICES_ONLY) @DefaultValue("false") final boolean unpaidInvoicesOnly,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final TenantContext tenantContext = context.createContext(request);
+
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
// Verify the account exists
- final UUID accountId = UUID.fromString(accountIdString);
accountUserApi.getAccountById(accountId, tenantContext);
final List<Invoice> invoices = unpaidInvoicesOnly ?
@@ -683,7 +687,7 @@ public class AccountResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final UUID accountId = UUID.fromString(accountIdStr);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
final Account account = accountUserApi.getAccountById(accountId, tenantContext);
final List<Payment> payments = paymentApi.getAccountPayments(account.getId(), withPluginInfo, withAttempts, pluginProperties, tenantContext);
final List<InvoicePayment> invoicePayments = invoicePaymentApi.getInvoicePaymentsByAccount(accountId, tenantContext);
@@ -704,7 +708,7 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Trigger a payment for all unpaid invoices")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response payAllInvoices(@PathParam("accountId") final String accountId,
+ public Response payAllInvoices(@PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_PAYMENT_EXTERNAL) @DefaultValue("false") final Boolean externalPayment,
@QueryParam(QUERY_PAYMENT_AMOUNT) final BigDecimal paymentAmount,
@QueryParam(QUERY_PLUGIN_PROPERTY) final List<String> pluginPropertiesString,
@@ -712,10 +716,12 @@ public class AccountResource extends JaxRsResourceBase {
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, PaymentApiException, InvoiceApiException {
+
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), callContext);
+ final Account account = accountUserApi.getAccountById(accountId, callContext);
final Collection<Invoice> unpaidInvoices = invoiceApi.getUnpaidInvoicesByAccountId(account.getId(), clock.getUTCToday(), callContext);
BigDecimal remainingRequestPayment = paymentAmount;
@@ -757,7 +763,7 @@ public class AccountResource extends JaxRsResourceBase {
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
public Response createPaymentMethod(final PaymentMethodJson json,
- @PathParam("accountId") final String accountId,
+ @PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_PAYMENT_METHOD_IS_DEFAULT) @DefaultValue("false") final Boolean isDefault,
@QueryParam(QUERY_PAY_ALL_UNPAID_INVOICES) @DefaultValue("false") final Boolean payAllUnpaidInvoices,
@QueryParam(QUERY_PLUGIN_PROPERTY) final List<String> pluginPropertiesString,
@@ -769,10 +775,12 @@ public class AccountResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json, "PaymentMethodJson body should be specified");
verifyNonNullOrEmpty(json.getPluginName(), "PaymentMethodJson pluginName should be specified");
+ final UUID accountId = UUID.fromString(accountIdStr);
+
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final PaymentMethod data = json.toPaymentMethod(accountId);
+ final PaymentMethod data = json.toPaymentMethod(accountIdStr);
final Account account = accountUserApi.getAccountById(data.getAccountId(), callContext);
final boolean hasDefaultPaymentMethod = account.getPaymentMethodId() != null || isDefault;
@@ -798,15 +806,16 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve account payment methods", response = PaymentMethodJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getPaymentMethods(@PathParam("accountId") final String accountId,
+ public Response getPaymentMethods(@PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_WITH_PLUGIN_INFO) @DefaultValue("false") final Boolean withPluginInfo,
@QueryParam(QUERY_PLUGIN_PROPERTY) final List<String> pluginPropertiesString,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), tenantContext);
+ final Account account = accountUserApi.getAccountById(accountId, tenantContext);
final List<PaymentMethod> methods = paymentApi.getAccountPaymentMethods(account.getId(), withPluginInfo, pluginProperties, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(account.getId(), auditMode.getLevel(), tenantContext);
final List<PaymentMethodJson> json = new ArrayList<PaymentMethodJson>(Collections2.transform(methods, new Function<PaymentMethod, PaymentMethodJson>() {
@@ -826,7 +835,7 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Refresh account payment methods")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response refreshPaymentMethods(@PathParam("accountId") final String accountId,
+ public Response refreshPaymentMethods(@PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_PAYMENT_PLUGIN_NAME) final String pluginName,
@QueryParam(QUERY_PLUGIN_PROPERTY) final List<String> pluginPropertiesString,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@@ -834,9 +843,10 @@ public class AccountResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), callContext);
+ final Account account = accountUserApi.getAccountById(accountId, callContext);
if (pluginName != null && !pluginName.isEmpty()) {
paymentApi.refreshPaymentMethods(account, pluginName, pluginProperties, callContext);
@@ -855,7 +865,7 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Set the default payment method")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id or payment method id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response setDefaultPaymentMethod(@PathParam("accountId") final String accountId,
+ public Response setDefaultPaymentMethod(@PathParam("accountId") final String accountIdStr,
@PathParam("paymentMethodId") final String paymentMethodId,
@QueryParam(QUERY_PAY_ALL_UNPAID_INVOICES) @DefaultValue("false") final Boolean payAllUnpaidInvoices,
@QueryParam(QUERY_PLUGIN_PROPERTY) final List<String> pluginPropertiesString,
@@ -864,9 +874,10 @@ public class AccountResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), callContext);
+ final Account account = accountUserApi.getAccountById(accountId, callContext);
final UUID newPaymentMethodId = UUID.fromString(paymentMethodId);
paymentApi.setDefaultPaymentMethod(account, newPaymentMethodId, pluginProperties, callContext);
@@ -896,7 +907,7 @@ public class AccountResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
final UUID accountId = UUID.fromString(accountIdStr);
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
final List<Payment> payments = paymentApi.getAccountPayments(accountId, withPluginInfo, withAttempts, pluginProperties, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(accountId, auditMode.getLevel(), tenantContext);
final List<PaymentJson> result = ImmutableList.copyOf(Iterables.transform(payments, new Function<Payment, PaymentJson>() {
@@ -932,7 +943,7 @@ public class AccountResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Account account = accountUserApi.getAccountByKey(externalKey, callContext);
return processPayment(json, account, paymentMethodIdStr, paymentControlPluginNames, pluginPropertiesString, uriInfo, callContext, request);
@@ -963,7 +974,7 @@ public class AccountResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
final UUID accountId = UUID.fromString(accountIdStr);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
final Account account = accountUserApi.getAccountById(accountId, callContext);
return processPayment(json, account, paymentMethodIdStr, paymentControlPluginNames, pluginPropertiesString, uriInfo, callContext, request);
@@ -1044,11 +1055,12 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve overdue state for account", response = OverdueStateJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getOverdueAccount(@PathParam("accountId") final String accountId,
+ public Response getOverdueAccount(@PathParam("accountId") final String accountIdStr,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, OverdueException, OverdueApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), tenantContext);
+ final Account account = accountUserApi.getAccountById(accountId, tenantContext);
final OverdueState overdueState = overdueApi.getOverdueStateFor(account.getId(), tenantContext);
return Response.status(Status.OK).entity(new OverdueStateJson(overdueState, paymentConfig)).build();
@@ -1065,14 +1077,14 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Retrieve blocking states for account", response = BlockingStateJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response getBlockingStates(@PathParam(ID_PARAM_NAME) final String id,
+ public Response getBlockingStates(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@QueryParam(QUERY_BLOCKING_STATE_TYPES) final List<BlockingStateType> typeFilter,
@QueryParam(QUERY_BLOCKING_STATE_SVCS) final List<String> svcsFilter,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws EntitlementApiException {
- final TenantContext tenantContext = this.context.createContext(request);
- final UUID accountId = UUID.fromString(id);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = this.context.createTenantContextWithAccountId(accountId, request);
final Iterable<BlockingState> blockingStates = subscriptionApi.getBlockingStates(accountId, typeFilter, svcsFilter, OrderingType.ASCENDING, SubscriptionApi.ALL_EVENTS, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(accountId, auditMode.getLevel(), tenantContext);
@@ -1115,10 +1127,11 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Retrieve account custom fields", response = CustomFieldJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String id,
+ public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(id), auditMode, context.createContext(request));
+ final UUID accountId = UUID.fromString(accountIdStr);
+ return super.getCustomFields(accountId, auditMode, context.createTenantContextWithAccountId(accountId, request));
}
@TimedResource
@@ -1128,15 +1141,16 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Add custom fields to account")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response createCustomFields(@PathParam(ID_PARAM_NAME) final String id,
+ public Response createCustomFields(@PathParam(ID_PARAM_NAME) final String accountIdStr,
final List<CustomFieldJson> customFields,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
- return super.createCustomFields(UUID.fromString(id), customFields, context.createContext(createdBy, reason,
- comment, request), uriInfo, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ return super.createCustomFields(accountId, customFields, context.createCallContextWithAccountId(accountId, createdBy, reason,
+ comment, request), uriInfo, request);
}
@TimedResource
@@ -1146,14 +1160,15 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Remove custom fields from account")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response deleteCustomFields(@PathParam(ID_PARAM_NAME) final String id,
+ public Response deleteCustomFields(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@QueryParam(QUERY_CUSTOM_FIELDS) final String customFieldList,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
- return super.deleteCustomFields(UUID.fromString(id), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ final UUID accountId = UUID.fromString(accountIdStr);
+ return super.deleteCustomFields(accountId, customFieldList,
+ context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request));
}
/*
@@ -1167,12 +1182,12 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve account tags", response = TagJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getTags(@PathParam(ID_PARAM_NAME) final String accountIdString,
+ public Response getTags(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@QueryParam(QUERY_INCLUDED_DELETED) @DefaultValue("false") final Boolean includedDeleted,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException {
- final UUID accountId = UUID.fromString(accountIdString);
- return super.getTags(accountId, accountId, auditMode, includedDeleted, context.createContext(request));
+ final UUID accountId = UUID.fromString(accountIdStr);
+ return super.getTags(accountId, accountId, auditMode, includedDeleted, context.createTenantContextWithAccountId(accountId, request));
}
@TimedResource
@@ -1182,13 +1197,13 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve account tags", response = TagJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response getAllTags(@PathParam(ID_PARAM_NAME) final String accountIdString,
+ public Response getAllTags(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@QueryParam(QUERY_OBJECT_TYPE) final ObjectType objectType,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@QueryParam(QUERY_INCLUDED_DELETED) @DefaultValue("false") final Boolean includedDeleted,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException {
- final UUID accountId = UUID.fromString(accountIdString);
- final TenantContext tenantContext = context.createContext(request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
final List<Tag> tags = objectType != null ?
tagUserApi.getTagsForAccountType(accountId, objectType, includedDeleted, tenantContext) :
tagUserApi.getTagsForAccount(accountId, includedDeleted, tenantContext);
@@ -1201,15 +1216,16 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Add tags to account")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response createTags(@PathParam(ID_PARAM_NAME) final String id,
+ public Response createTags(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@QueryParam(QUERY_TAGS) final String tagList,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
- return super.createTags(UUID.fromString(id), tagList, uriInfo,
- context.createContext(createdBy, reason, comment, request), request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ return super.createTags(accountId, tagList, uriInfo,
+ context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request), request);
}
@TimedResource
@@ -1219,13 +1235,14 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Remove tags from account")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied or account does not have a default payment method (AUTO_PAY_OFF tag only)")})
- public Response deleteTags(@PathParam(ID_PARAM_NAME) final String id,
+ public Response deleteTags(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@QueryParam(QUERY_TAGS) final String tagList,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException, AccountApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
// Look if there is an AUTO_PAY_OFF for that account and check if the account has a default paymentMethod
// If not we can't remove the AUTO_PAY_OFF tag
@@ -1237,7 +1254,6 @@ public class AccountResource extends JaxRsResourceBase {
break;
}
}
- final UUID accountId = UUID.fromString(id);
if (isTagAutoPayOff) {
final Account account = accountUserApi.getAccountById(accountId, callContext);
if (account.getPaymentMethodId() == null) {
@@ -1245,7 +1261,7 @@ public class AccountResource extends JaxRsResourceBase {
}
}
- return super.deleteTags(UUID.fromString(id), tagList, callContext);
+ return super.deleteTags(accountId, tagList, callContext);
}
/*
@@ -1258,10 +1274,10 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Retrieve an account emails", response = AccountEmailJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response getEmails(@PathParam(ID_PARAM_NAME) final String id,
+ public Response getEmails(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- final UUID accountId = UUID.fromString(id);
- final List<AccountEmail> emails = accountUserApi.getEmails(accountId, context.createContext(request));
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final List<AccountEmail> emails = accountUserApi.getEmails(accountId, context.createTenantContextWithAccountId(accountId, request));
final List<AccountEmailJson> emailsJson = new ArrayList<AccountEmailJson>();
for (final AccountEmail email : emails) {
@@ -1288,9 +1304,9 @@ public class AccountResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json, "AccountEmailJson body should be specified");
verifyNonNullOrEmpty(json.getEmail(), "AccountEmailJson email needs to be set");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
-
final UUID accountId = UUID.fromString(id);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
+
// Make sure the account exist or we will confuse the history and auditing code
accountUserApi.getAccountById(accountId, callContext);
@@ -1318,20 +1334,20 @@ public class AccountResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Delete email from account")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied")})
- public Response removeEmail(@PathParam(ID_PARAM_NAME) final String id,
+ public Response removeEmail(@PathParam(ID_PARAM_NAME) final String accountIdStr,
@PathParam("email") final String email,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- final UUID accountId = UUID.fromString(id);
+ final UUID accountId = UUID.fromString(accountIdStr);
- final List<AccountEmail> emails = accountUserApi.getEmails(accountId, context.createContext(request));
+ final List<AccountEmail> emails = accountUserApi.getEmails(accountId, context.createTenantContextWithAccountId(accountId, request));
for (final AccountEmail cur : emails) {
if (cur.getEmail().equals(email)) {
final AccountEmailJson accountEmailJson = new AccountEmailJson(accountId.toString(), email);
final AccountEmail accountEmail = accountEmailJson.toAccountEmail(cur.getId());
- accountUserApi.removeEmail(accountId, accountEmail, context.createContext(createdBy, reason, comment, request));
+ accountUserApi.removeEmail(accountId, accountEmail, context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request));
}
}
return Response.status(Status.OK).build();
@@ -1353,14 +1369,15 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "List children accounts", response = AccountJson.class, responseContainer = "List")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid parent account id supplied"),
@ApiResponse(code = 404, message = "Parent Account not found")})
- public Response getChildrenAccounts(@PathParam("accountId") final String parentAccountId,
+ public Response getChildrenAccounts(@PathParam("accountId") final String parentAccountIdStr,
@QueryParam(QUERY_ACCOUNT_WITH_BALANCE) @DefaultValue("false") final Boolean accountWithBalance,
@QueryParam(QUERY_ACCOUNT_WITH_BALANCE_AND_CBA) @DefaultValue("false") final Boolean accountWithBalanceAndCBA,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException {
- final TenantContext tenantContext = context.createContext(request);
- final List<Account> accounts = accountUserApi.getChildrenAccounts(UUID.fromString(parentAccountId), tenantContext);
+ final UUID parentAccountId = UUID.fromString(parentAccountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(parentAccountId, request);
+ final List<Account> accounts = accountUserApi.getChildrenAccounts(parentAccountId, tenantContext);
final List<AccountJson> accountJson = new ArrayList<AccountJson>();
for (final Account account : accounts) {
@@ -1378,15 +1395,15 @@ public class AccountResource extends JaxRsResourceBase {
@ApiOperation(value = "Move a given child credit to the parent level")
@ApiResponses(value = {@ApiResponse(code = 400, message = "Account does not have credit"),
@ApiResponse(code = 404, message = "Account not found")})
- public Response transferChildCreditToParent(@PathParam("childAccountId") final String childAccountIdString,
+ public Response transferChildCreditToParent(@PathParam("childAccountId") final String childAccountIdStr,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws InvoiceApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
- final UUID childAccountId = UUID.fromString(childAccountIdString);
+ final UUID childAccountId = UUID.fromString(childAccountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(childAccountId, createdBy, reason, comment, request);
invoiceApi.transferChildCreditToParent(childAccountId, callContext);
return Response.status(Response.Status.OK).build();
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AdminResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AdminResource.java
index e9af063..6c02300 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AdminResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/AdminResource.java
@@ -157,7 +157,7 @@ public class AdminResource extends JaxRsResourceBase {
@QueryParam("withBusEvents") @DefaultValue("true") final Boolean withBusEvents,
@QueryParam("withNotifications") @DefaultValue("true") final Boolean withNotifications,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Long tenantRecordId = recordIdApi.getRecordId(tenantContext.getTenantId(), ObjectType.TENANT, tenantContext);
final Long accountRecordId = Strings.isNullOrEmpty(accountIdStr) ? null : recordIdApi.getRecordId(UUID.fromString(accountIdStr), ObjectType.ACCOUNT, tenantContext);
@@ -235,7 +235,7 @@ public class AdminResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Payment payment = paymentApi.getPayment(UUID.fromString(paymentIdStr), false, false, ImmutableList.<PluginProperty>of(), callContext);
@@ -265,7 +265,7 @@ public class AdminResource extends JaxRsResourceBase {
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
// TODO Consider adding a real invoice API post 0.18.x
final Pagination<Tag> tags = tagUserApi.searchTags(SystemTags.PARK_TAG_DEFINITION_NAME, offset, limit, callContext);
@@ -348,8 +348,9 @@ public class AdminResource extends JaxRsResourceBase {
@ApiResponses(value = {})
public Response invalidatesCacheByAccount(@PathParam("accountId") final String accountIdStr,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- final TenantContext tenantContext = context.createContext(request);
+
final UUID accountId = UUID.fromString(accountIdStr);
+ final TenantContext tenantContext = context.createTenantContextWithAccountId(accountId, request);
final Long accountRecordId = recordIdApi.getRecordId(accountId, ObjectType.ACCOUNT, tenantContext);
// clear account-record-id cache by accountId (note: String!)
@@ -376,7 +377,7 @@ public class AdminResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
// creating Tenant Context from Request
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Tenant currentTenant = tenantApi.getTenantById(tenantContext.getTenantId());
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java
index c54164a..8f37bb6 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/BundleResource.java
@@ -121,8 +121,7 @@ public class BundleResource extends JaxRsResourceBase {
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, AccountApiException, CatalogApiException {
final UUID id = UUID.fromString(bundleId);
-
- final TenantContext tenantContext = this.context.createContext(request);
+ final TenantContext tenantContext = this.context.createTenantContextNoAccountId(request);
final SubscriptionBundle bundle = subscriptionApi.getSubscriptionBundle(id, tenantContext);
final Account account = accountUserApi.getAccountById(bundle.getAccountId(), tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(bundle.getAccountId(), auditMode.getLevel(), tenantContext);
@@ -140,7 +139,7 @@ public class BundleResource extends JaxRsResourceBase {
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, AccountApiException, CatalogApiException {
- final TenantContext tenantContext = this.context.createContext(request);
+ final TenantContext tenantContext = this.context.createTenantContextNoAccountId(request);
final List<SubscriptionBundle> bundles;
if (includedDeleted) {
@@ -169,7 +168,7 @@ public class BundleResource extends JaxRsResourceBase {
@QueryParam(QUERY_SEARCH_LIMIT) @DefaultValue("100") final Long limit,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<SubscriptionBundle> bundles = subscriptionApi.getSubscriptionBundles(offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(BundleResource.class, "getBundles", bundles.getNextOffset(), limit, ImmutableMap.<String, String>of(QUERY_AUDIT, auditMode.getLevel().toString()));
final AtomicReference<Map<UUID, AccountAuditLogs>> accountsAuditLogs = new AtomicReference<Map<UUID, AccountAuditLogs>>(new HashMap<UUID, AccountAuditLogs>());
@@ -204,7 +203,7 @@ public class BundleResource extends JaxRsResourceBase {
@QueryParam(QUERY_SEARCH_LIMIT) @DefaultValue("100") final Long limit,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<SubscriptionBundle> bundles = subscriptionApi.searchSubscriptionBundles(searchKey, offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(BundleResource.class, "searchBundles", bundles.getNextOffset(), limit, ImmutableMap.<String, String>of("searchKey", searchKey,
QUERY_AUDIT, auditMode.getLevel().toString()));
@@ -244,7 +243,7 @@ public class BundleResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, EntitlementApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID bundleId = UUID.fromString(id);
final LocalDate inputLocalDate = toLocalDate(requestedDate);
entitlementApi.pause(bundleId, inputLocalDate, pluginProperties, callContext);
@@ -267,7 +266,7 @@ public class BundleResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, EntitlementApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID bundleId = UUID.fromString(id);
final LocalDate inputLocalDate = toLocalDate(requestedDate);
entitlementApi.resume(bundleId, inputLocalDate, pluginProperties, callContext);
@@ -303,7 +302,7 @@ public class BundleResource extends JaxRsResourceBase {
public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String id,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(id), auditMode, context.createContext(request));
+ return super.getCustomFields(UUID.fromString(id), auditMode, context.createTenantContextNoAccountId(request));
}
@TimedResource
@@ -321,7 +320,7 @@ public class BundleResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), uriInfo, request);
}
@TimedResource
@@ -338,7 +337,7 @@ public class BundleResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
return super.deleteCustomFields(UUID.fromString(id), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@TimedResource
@@ -353,8 +352,8 @@ public class BundleResource extends JaxRsResourceBase {
@QueryParam(QUERY_INCLUDED_DELETED) @DefaultValue("false") final Boolean includedDeleted,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException, SubscriptionApiException {
final UUID bundleId = UUID.fromString(bundleIdString);
- final TenantContext tenantContext = context.createContext(request);
- final SubscriptionBundle bundle = subscriptionApi.getSubscriptionBundle(bundleId, context.createContext(request));
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
+ final SubscriptionBundle bundle = subscriptionApi.getSubscriptionBundle(bundleId, tenantContext);
return super.getTags(bundle.getAccountId(), bundleId, auditMode, includedDeleted, tenantContext);
}
@@ -382,7 +381,7 @@ public class BundleResource extends JaxRsResourceBase {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final BillingActionPolicy policy = BillingActionPolicy.valueOf(policyString.toUpperCase());
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID bundleId = UUID.fromString(id);
final SubscriptionBundle bundle = subscriptionApi.getSubscriptionBundle(bundleId, callContext);
@@ -407,7 +406,7 @@ public class BundleResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.createTags(UUID.fromString(id), tagList, uriInfo,
- context.createContext(createdBy, reason, comment, request), request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), request);
}
@TimedResource
@@ -424,7 +423,7 @@ public class BundleResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.deleteTags(UUID.fromString(id), tagList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
index 3f842fe..b2be1ca 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CatalogResource.java
@@ -94,7 +94,7 @@ public class CatalogResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve the full catalog as XML", response = String.class, hidden = true)
@ApiResponses(value = {})
public Response getCatalogXml(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
return Response.status(Status.OK).entity(XMLWriter.writeXML((VersionedCatalog) catalogUserApi.getCatalog(catalogName, tenantContext), VersionedCatalog.class)).build();
}
@@ -109,7 +109,7 @@ public class CatalogResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
catalogUserApi.uploadCatalog(catalogXML, callContext);
return uriBuilder.buildResponse(uriInfo, CatalogResource.class, null, null, request);
}
@@ -122,7 +122,7 @@ public class CatalogResource extends JaxRsResourceBase {
public Response getCatalogJson(@QueryParam(QUERY_REQUESTED_DT) final String requestedDate,
@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final DateTime catalogDateVersion = requestedDate != null ?
DATE_TIME_FORMATTER.parseDateTime(requestedDate).toDateTime(DateTimeZone.UTC) :
null;
@@ -164,7 +164,7 @@ public class CatalogResource extends JaxRsResourceBase {
public Response getAvailableAddons(@QueryParam("baseProductName") final String baseProductName,
@Nullable @QueryParam("priceListName") final String priceListName,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CatalogApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final StaticCatalog catalog = catalogUserApi.getCurrentCatalog(catalogName, tenantContext);
final List<Listing> listings = catalog.getAvailableAddOnListings(baseProductName, priceListName);
final List<PlanDetailJson> details = new ArrayList<PlanDetailJson>();
@@ -181,7 +181,7 @@ public class CatalogResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve available base plans", response = PlanDetailJson.class, responseContainer = "List")
@ApiResponses(value = {})
public Response getAvailableBasePlans(@javax.ws.rs.core.Context final HttpServletRequest request) throws CatalogApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final StaticCatalog catalog = catalogUserApi.getCurrentCatalog(catalogName, tenantContext);
final List<Listing> listings = catalog.getAvailableBasePlanListings();
final List<PlanDetailJson> details = new ArrayList<PlanDetailJson>();
@@ -205,7 +205,7 @@ public class CatalogResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final SimplePlanDescriptor desc = new DefaultSimplePlanDescriptor(simplePlan.getPlanId(),
simplePlan.getProductName(),
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
index 17e2c9f..f816d4e 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CreditResource.java
@@ -91,7 +91,7 @@ public class CreditResource extends JaxRsResourceBase {
@ApiResponse(code = 404, message = "Credit not found")})
public Response getCredit(@PathParam("creditId") final String creditId,
@javax.ws.rs.core.Context final HttpServletRequest request) throws InvoiceApiException, AccountApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final InvoiceItem credit = invoiceUserApi.getCreditById(UUID.fromString(creditId), tenantContext);
final Invoice invoice = invoiceUserApi.getInvoice(credit.getInvoiceId(), tenantContext);
final CreditJson creditJson = new CreditJson(invoice, credit);
@@ -115,7 +115,7 @@ public class CreditResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json.getAccountId(), "CreditJson accountId needs to be set",
json.getCreditAmount(), "CreditJson creditAmount needs to be set");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Account account = accountUserApi.getAccountById(UUID.fromString(json.getAccountId()), callContext);
final LocalDate effectiveDate = new LocalDate(clock.getUTCNow(), account.getTimeZone());
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CustomFieldResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CustomFieldResource.java
index 810035c..6088379 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CustomFieldResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/CustomFieldResource.java
@@ -82,7 +82,7 @@ public class CustomFieldResource extends JaxRsResourceBase {
@QueryParam(QUERY_SEARCH_LIMIT) @DefaultValue("100") final Long limit,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<CustomField> customFields = customFieldUserApi.getCustomFields(offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(CustomFieldResource.class, "getCustomFields", customFields.getNextOffset(), limit, ImmutableMap.<String, String>of(QUERY_AUDIT, auditMode.getLevel().toString()));
@@ -109,7 +109,7 @@ public class CustomFieldResource extends JaxRsResourceBase {
@QueryParam(QUERY_SEARCH_LIMIT) @DefaultValue("100") final Long limit,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<CustomField> customFields = customFieldUserApi.searchCustomFields(searchKey, offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(CustomFieldResource.class, "searchCustomFields", customFields.getNextOffset(), limit, ImmutableMap.<String, String>of("searchKey", searchKey,
QUERY_AUDIT, auditMode.getLevel().toString()));
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/ExportResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/ExportResource.java
index 7714cbb..ea4be80 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/ExportResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/ExportResource.java
@@ -78,17 +78,19 @@ public class ExportResource extends JaxRsResourceBase {
@ApiOperation(value = "Export account data", response = String.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
- public StreamingOutput exportDataForAccount(@PathParam("accountId") final String accountId,
+ public StreamingOutput exportDataForAccount(@PathParam("accountId") final String accountIdStr
+ ,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
return new StreamingOutput() {
@Override
public void write(final OutputStream output) throws IOException, WebApplicationException {
// CSV by default for now
- exportUserApi.exportDataAsCSVForAccount(UUID.fromString(accountId), output, callContext);
+ exportUserApi.exportDataAsCSVForAccount(accountId, output, callContext);
}
};
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java
index e5249e9..440d83a 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoicePaymentResource.java
@@ -121,7 +121,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final UUID paymentIdId = UUID.fromString(paymentIdStr);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Payment payment = paymentApi.getPayment(paymentIdId, withPluginInfo, withAttempts, pluginProperties, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(payment.getAccountId(), auditMode.getLevel(), tenantContext);
@@ -158,7 +158,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
verifyNonNullOrEmpty(json, "InvoicePaymentTransactionJson body should be specified");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID paymentUuid = UUID.fromString(paymentId);
final Payment payment = paymentApi.getPayment(paymentUuid, false, false, ImmutableList.<PluginProperty>of(), callContext);
final Account account = accountUserApi.getAccountById(payment.getAccountId(), callContext);
@@ -220,7 +220,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json, "InvoicePaymentTransactionJson body should be specified");
verifyNonNullOrEmpty(json.getAmount(), "InvoicePaymentTransactionJson amount needs to be set");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID paymentUuid = UUID.fromString(paymentId);
final Payment payment = paymentApi.getPayment(paymentUuid, false, false, ImmutableList.<PluginProperty>of(), callContext);
final Account account = accountUserApi.getAccountById(payment.getAccountId(), callContext);
@@ -249,7 +249,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json, "InvoicePaymentTransactionJson body should be specified");
verifyNonNullOrEmpty(json.getTransactionExternalKey(), "transactionExternalKey amount needs to be set");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID paymentUuid = UUID.fromString(paymentId);
final Payment payment = paymentApi.getPayment(paymentUuid, false, false, ImmutableList.<PluginProperty>of(), callContext);
final Account account = accountUserApi.getAccountById(payment.getAccountId(), callContext);
@@ -267,7 +267,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String id,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(id), auditMode, context.createContext(request));
+ return super.getCustomFields(UUID.fromString(id), auditMode, context.createTenantContextNoAccountId(request));
}
@TimedResource
@@ -285,7 +285,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), uriInfo, request);
}
@TimedResource
@@ -302,7 +302,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
return super.deleteCustomFields(UUID.fromString(id), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@TimedResource
@@ -319,7 +319,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException, PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final UUID paymentId = UUID.fromString(paymentIdString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Payment payment = paymentApi.getPayment(paymentId, false, false, pluginProperties, tenantContext);
return super.getTags(payment.getAccountId(), paymentId, auditMode, includedDeleted, tenantContext);
}
@@ -339,7 +339,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.createTags(UUID.fromString(id), tagList, uriInfo,
- context.createContext(createdBy, reason, comment, request), request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), request);
}
@TimedResource
@@ -356,7 +356,7 @@ public class InvoicePaymentResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.deleteTags(UUID.fromString(id), tagList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
index a7ad890..cf30e0c 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
@@ -178,7 +178,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@QueryParam(QUERY_INVOICE_WITH_CHILDREN_ITEMS) @DefaultValue("false") final boolean withChildrenItems,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws InvoiceApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Invoice invoice = invoiceApi.getInvoice(UUID.fromString(invoiceId), tenantContext);
final List<InvoiceItem> childInvoiceItems = withChildrenItems ? invoiceApi.getInvoiceItemsByParentInvoice(invoice.getId(), tenantContext) : null;
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(invoice.getAccountId(), auditMode.getLevel(), tenantContext);
@@ -202,7 +202,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@QueryParam(QUERY_INVOICE_WITH_CHILDREN_ITEMS) @DefaultValue("false") final boolean withChildrenItems,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws InvoiceApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Invoice invoice = invoiceApi.getInvoiceByNumber(invoiceNumber, tenantContext);
final List<InvoiceItem> childInvoiceItems = withChildrenItems ? invoiceApi.getInvoiceItemsByParentInvoice(invoice.getId(), tenantContext) : null;
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(invoice.getAccountId(), auditMode.getLevel(), tenantContext);
@@ -223,7 +223,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@ApiResponses(value = {@ApiResponse(code = 404, message = "Invoice not found")})
public Response getInvoiceAsHTML(@PathParam("invoiceId") final String invoiceId,
@javax.ws.rs.core.Context final HttpServletRequest request) throws InvoiceApiException, IOException, AccountApiException {
- return Response.status(Status.OK).entity(invoiceApi.getInvoiceAsHTML(UUID.fromString(invoiceId), context.createContext(request))).build();
+ return Response.status(Status.OK).entity(invoiceApi.getInvoiceAsHTML(UUID.fromString(invoiceId), context.createTenantContextNoAccountId(request))).build();
}
@TimedResource
@@ -237,7 +237,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@QueryParam(QUERY_INVOICE_WITH_ITEMS) @DefaultValue("false") final Boolean withItems,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws InvoiceApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<Invoice> invoices = invoiceApi.getInvoices(offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(InvoiceResource.class, "getInvoices", invoices.getNextOffset(), limit, ImmutableMap.<String, String>of(QUERY_INVOICE_WITH_ITEMS, withItems.toString(),
QUERY_AUDIT, auditMode.getLevel().toString()));
@@ -270,7 +270,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@QueryParam(QUERY_INVOICE_WITH_ITEMS) @DefaultValue("false") final Boolean withItems,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<Invoice> invoices = invoiceApi.searchInvoices(searchKey, offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(InvoiceResource.class, "searchInvoices", invoices.getNextOffset(), limit, ImmutableMap.<String, String>of("searchKey", searchKey,
QUERY_INVOICE_WITH_ITEMS, withItems.toString(),
@@ -297,18 +297,20 @@ public class InvoiceResource extends JaxRsResourceBase {
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Trigger an invoice generation", response = InvoiceJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id or target datetime supplied")})
- public Response createFutureInvoice(@QueryParam(QUERY_ACCOUNT_ID) final String accountId,
+ public Response createFutureInvoice(@QueryParam(QUERY_ACCOUNT_ID) final String accountIdStr,
@QueryParam(QUERY_TARGET_DATE) final String targetDate,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws AccountApiException, InvoiceApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
final LocalDate inputDate = toLocalDate(targetDate);
try {
- final Invoice generatedInvoice = invoiceApi.triggerInvoiceGeneration(UUID.fromString(accountId), inputDate, null,
+ final Invoice generatedInvoice = invoiceApi.triggerInvoiceGeneration(accountId, inputDate, null,
callContext);
return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, "getInvoice", generatedInvoice.getId(), request);
} catch (InvoiceApiException e) {
@@ -327,19 +329,20 @@ public class InvoiceResource extends JaxRsResourceBase {
@ApiOperation(value = "Create a migration invoice", response = InvoiceJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id or target datetime supplied")})
public Response createMigrationInvoice(final Iterable<InvoiceItemJson> items,
- @PathParam("accountId") final String accountId,
+ @PathParam("accountId") final String accountIdStr,
@Nullable @QueryParam(QUERY_TARGET_DATE) final String targetDate,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws AccountApiException, InvoiceApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), callContext);
+ final Account account = accountUserApi.getAccountById(accountId, callContext);
final Iterable<InvoiceItem> sanitizedInvoiceItems = validateSanitizeAndTranformInputItems(account.getCurrency(), items);
final LocalDate resolvedTargetDate = toLocalDateDefaultToday(account, targetDate, callContext);
- final UUID invoiceId = invoiceApi.createMigrationInvoice(UUID.fromString(accountId), resolvedTargetDate, sanitizedInvoiceItems, callContext);
+ final UUID invoiceId = invoiceApi.createMigrationInvoice(accountId, resolvedTargetDate, sanitizedInvoiceItems, callContext);
return uriBuilder.buildResponse(uriInfo, InvoiceResource.class, "getInvoice", invoiceId, request);
}
@@ -352,14 +355,15 @@ public class InvoiceResource extends JaxRsResourceBase {
@ApiOperation(value = "Generate a dryRun invoice", response = InvoiceJson.class)
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id or target datetime supplied")})
public Response generateDryRunInvoice(@Nullable final InvoiceDryRunJson dryRunSubscriptionSpec,
- @QueryParam(QUERY_ACCOUNT_ID) final String accountId,
+ @QueryParam(QUERY_ACCOUNT_ID) final String accountIdStr,
@Nullable @QueryParam(QUERY_TARGET_DATE) final String targetDate,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws AccountApiException, InvoiceApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
final LocalDate inputDate;
if (dryRunSubscriptionSpec != null) {
if (DryRunType.UPCOMING_INVOICE.name().equals(dryRunSubscriptionSpec.getDryRunType())) {
@@ -392,11 +396,11 @@ public class InvoiceResource extends JaxRsResourceBase {
}
}
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), callContext);
+ final Account account = accountUserApi.getAccountById(accountId, callContext);
final DryRunArguments dryRunArguments = new DefaultDryRunArguments(dryRunSubscriptionSpec, account);
try {
- final Invoice generatedInvoice = invoiceApi.triggerInvoiceGeneration(UUID.fromString(accountId), inputDate, dryRunArguments,
+ final Invoice generatedInvoice = invoiceApi.triggerInvoiceGeneration(accountId, inputDate, dryRunArguments,
callContext);
return Response.status(Status.OK).entity(new InvoiceJson(generatedInvoice, true, null, null)).build();
} catch (InvoiceApiException e) {
@@ -417,14 +421,15 @@ public class InvoiceResource extends JaxRsResourceBase {
@ApiResponse(code = 404, message = "Account or invoice not found")})
public Response deleteCBA(@PathParam("invoiceId") final String invoiceId,
@PathParam("invoiceItemId") final String invoiceItemId,
- @QueryParam(QUERY_ACCOUNT_ID) final String accountId,
+ @QueryParam(QUERY_ACCOUNT_ID) final String accountIdStr,
@HeaderParam(HDR_CREATED_BY) final String createdBy,
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, InvoiceApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), callContext);
+ final Account account = accountUserApi.getAccountById(accountId, callContext);
invoiceApi.deleteCBA(account.getId(), UUID.fromString(invoiceId), UUID.fromString(invoiceItemId), callContext);
@@ -451,9 +456,9 @@ public class InvoiceResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json.getAccountId(), "InvoiceItemJson accountId needs to be set",
json.getInvoiceItemId(), "InvoiceItemJson invoiceItemId needs to be set");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
-
final UUID accountId = UUID.fromString(json.getAccountId());
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
+
final LocalDate requestedDate = toLocalDateDefaultToday(accountId, requestedDateTimeString, callContext);
final InvoiceItem adjustmentItem;
if (json.getAmount() == null) {
@@ -486,7 +491,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid account id supplied"),
@ApiResponse(code = 404, message = "Account not found")})
public Response createExternalCharges(final Iterable<InvoiceItemJson> externalChargesJson,
- @PathParam("accountId") final String accountId,
+ @PathParam("accountId") final String accountIdStr,
@QueryParam(QUERY_REQUESTED_DT) final String requestedDateTimeString,
@QueryParam(QUERY_PAY_INVOICE) @DefaultValue("false") final Boolean payInvoice,
@QueryParam(QUERY_PLUGIN_PROPERTY) final List<String> pluginPropertiesString,
@@ -498,10 +503,12 @@ public class InvoiceResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, InvoiceApiException, PaymentApiException {
+
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final UUID accountId = UUID.fromString(accountIdStr);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
- final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), callContext);
+ final Account account = accountUserApi.getAccountById(accountId, callContext);
final Iterable<InvoiceItem> sanitizedExternalChargesJson = validateSanitizeAndTranformInputItems(account.getCurrency(), externalChargesJson);
// Get the effective date of the external charge, in the account timezone
@@ -601,7 +608,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@QueryParam(QUERY_WITH_ATTEMPTS) @DefaultValue("false") final Boolean withAttempts,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, InvoiceApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Invoice invoice = invoiceApi.getInvoice(UUID.fromString(invoiceId), tenantContext);
// Extract unique set of paymentId for this invoice
@@ -654,7 +661,7 @@ public class InvoiceResource extends JaxRsResourceBase {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Account account = accountUserApi.getAccountById(UUID.fromString(payment.getAccountId()), callContext);
final UUID paymentMethodId = externalPayment ? null :
@@ -682,7 +689,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws InvoiceApiException, AccountApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Invoice invoice = invoiceApi.getInvoice(UUID.fromString(invoiceId), callContext);
if (invoice == null) {
@@ -870,7 +877,7 @@ public class InvoiceResource extends JaxRsResourceBase {
tenantKeyStr = tenantKey.toString();
}
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
if (!tenantApi.getTenantValuesForKey(tenantKeyStr, callContext).isEmpty()) {
if (deleteIfExists) {
@@ -886,7 +893,7 @@ public class InvoiceResource extends JaxRsResourceBase {
private Response getTemplateResource(@Nullable final String localeStr,
final TenantKey tenantKey,
final HttpServletRequest request) throws InvoiceApiException, TenantApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final String tenantKeyStr = localeStr != null ?
LocaleUtils.localeString(LocaleUtils.toLocale(localeStr), tenantKey.toString()) :
tenantKey.toString();
@@ -903,7 +910,7 @@ public class InvoiceResource extends JaxRsResourceBase {
public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String id,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(id), auditMode, context.createContext(request));
+ return super.getCustomFields(UUID.fromString(id), auditMode, context.createTenantContextNoAccountId(request));
}
@TimedResource
@@ -921,7 +928,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), uriInfo, request);
}
@TimedResource
@@ -938,7 +945,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
return super.deleteCustomFields(UUID.fromString(id), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@TimedResource
@@ -953,7 +960,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@QueryParam(QUERY_INCLUDED_DELETED) @DefaultValue("false") final Boolean includedDeleted,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException, InvoiceApiException {
final UUID invoiceId = UUID.fromString(invoiceIdString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Invoice invoice = invoiceApi.getInvoice(invoiceId, tenantContext);
return super.getTags(invoice.getAccountId(), invoiceId, auditMode, includedDeleted, tenantContext);
}
@@ -973,7 +980,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.createTags(UUID.fromString(id), tagList, uriInfo,
- context.createContext(createdBy, reason, comment, request), request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), request);
}
@TimedResource
@@ -990,7 +997,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.deleteTags(UUID.fromString(id), tagList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@TimedResource
@@ -1007,7 +1014,7 @@ public class InvoiceResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws InvoiceApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID invoiceId = UUID.fromString(invoiceIdString);
invoiceApi.commitInvoice(invoiceId, callContext);
return Response.status(Response.Status.OK).build();
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
index 2a3da40..79a3744 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
@@ -170,7 +170,7 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
final HttpServletRequest request) throws SubscriptionApiException, EntitlementApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID blockableId = UUID.fromString(id);
final boolean isBlockBilling = (json.isBlockBilling() != null && json.isBlockBilling());
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java
index a3deec0..82b4c72 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/OverdueResource.java
@@ -86,7 +86,7 @@ public class OverdueResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve the overdue config as XML", response = String.class, hidden = true)
@ApiResponses(value = {})
public Response getOverdueConfigXml(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
return Response.status(Status.OK).entity(XMLWriter.writeXML((DefaultOverdueConfig )overdueApi.getOverdueConfig(tenantContext), DefaultOverdueConfig.class)).build();
}
@@ -105,7 +105,7 @@ public class OverdueResource extends JaxRsResourceBase {
final InputStream stream = new ByteArrayInputStream(overdueXML.getBytes());
XMLLoader.getObjectFromStream(new URI(JaxrsResource.OVERDUE_PATH), stream, DefaultOverdueConfig.class);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
overdueApi.uploadOverdueConfig(overdueXML, callContext);
return uriBuilder.buildResponse(uriInfo, OverdueResource.class, null, null, request);
}
@@ -116,7 +116,7 @@ public class OverdueResource extends JaxRsResourceBase {
@ApiOperation(value = "Retrieve the overdue config as JSON" , response = OverdueJson.class)
@ApiResponses(value = {})
public Response getOverdueConfigJson(@javax.ws.rs.core.Context final HttpServletRequest request) throws Exception {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final OverdueConfig overdueConfig = overdueApi.getOverdueConfig(tenantContext);
final OverdueJson result = new OverdueJson(overdueConfig);
return Response.status(Status.OK).entity(result).build();
@@ -136,7 +136,7 @@ public class OverdueResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws Exception {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final OverdueConfig overdueConfig = OverdueJson.toOverdueConfigWithValidation(overdueJson);
overdueApi.uploadOverdueConfig(overdueConfig, callContext);
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentGatewayResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentGatewayResource.java
index f6fc1ee..671c99d 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentGatewayResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentGatewayResource.java
@@ -106,7 +106,7 @@ public class PaymentGatewayResource extends ComboPaymentResource {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final PaymentOptions paymentOptions = createControlPluginApiPaymentOptions(paymentControlPluginNames);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Account account = getOrCreateAccount(json.getAccount(), callContext);
final Iterable<PluginProperty> paymentMethodPluginProperties = extractPluginProperties(json.getPaymentMethodPluginProperties());
@@ -141,8 +141,8 @@ public class PaymentGatewayResource extends ComboPaymentResource {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final PaymentOptions paymentOptions = createControlPluginApiPaymentOptions(paymentControlPluginNames);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
final UUID accountId = UUID.fromString(accountIdString);
+ final CallContext callContext = context.createCallContextWithAccountId(accountId, createdBy, reason, comment, request);
final Account account = accountUserApi.getAccountById(accountId, callContext);
final UUID paymentMethodId = paymentMethodIdStr == null ? account.getPaymentMethodId() : UUID.fromString(paymentMethodIdStr);
@@ -174,7 +174,7 @@ public class PaymentGatewayResource extends ComboPaymentResource {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final PaymentOptions paymentOptions = createControlPluginApiPaymentOptions(paymentControlPluginNames);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final String notificationPayload;
if (Strings.emptyToNull(body) == null && uriInfo.getRequestUri() != null) {
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java
index 22e7533..43dde2f 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentMethodResource.java
@@ -105,7 +105,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@QueryParam(QUERY_WITH_PLUGIN_INFO) @DefaultValue("false") final Boolean withPluginInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final PaymentMethod paymentMethod = paymentApi.getPaymentMethodById(UUID.fromString(paymentMethodId), false, withPluginInfo, pluginProperties, tenantContext);
final Account account = accountUserApi.getAccountById(paymentMethod.getAccountId(), tenantContext);
@@ -126,7 +126,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@QueryParam(QUERY_WITH_PLUGIN_INFO) @DefaultValue("false") final Boolean withPluginInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException, PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final PaymentMethod paymentMethod = paymentApi.getPaymentMethodByExternalKey(externalKey, false, withPluginInfo, pluginProperties, tenantContext);
final Account account = accountUserApi.getAccountById(paymentMethod.getAccountId(), tenantContext);
@@ -149,7 +149,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@QueryParam(QUERY_WITH_PLUGIN_INFO) @DefaultValue("false") final Boolean withPluginInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<PaymentMethod> paymentMethods;
if (Strings.isNullOrEmpty(pluginName)) {
@@ -206,7 +206,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@QueryParam(QUERY_WITH_PLUGIN_INFO) @DefaultValue("false") final Boolean withPluginInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
// Search the plugin(s)
final Pagination<PaymentMethod> paymentMethods;
@@ -266,7 +266,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final PaymentMethod paymentMethod = paymentApi.getPaymentMethodById(UUID.fromString(paymentMethodId), false, false, pluginProperties, callContext);
final Account account = accountUserApi.getAccountById(paymentMethod.getAccountId(), callContext);
@@ -285,7 +285,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
public Response getCustomFields(@PathParam("paymentMethodId") final String paymentMethodId,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(paymentMethodId), auditMode, context.createContext(request));
+ return super.getCustomFields(UUID.fromString(paymentMethodId), auditMode, context.createTenantContextNoAccountId(request));
}
@TimedResource
@@ -303,7 +303,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(paymentMethodId), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), uriInfo, request);
}
@TimedResource
@@ -320,7 +320,7 @@ public class PaymentMethodResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
return super.deleteCustomFields(UUID.fromString(paymentMethodId), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
index 8fc205b..add62fe 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/PaymentResource.java
@@ -122,7 +122,7 @@ public class PaymentResource extends ComboPaymentResource {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final UUID paymentIdId = UUID.fromString(paymentIdStr);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Payment payment = paymentApi.getPayment(paymentIdId, withPluginInfo, withAttempts, pluginProperties, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(payment.getAccountId(), auditMode.getLevel(), tenantContext);
final PaymentJson result = new PaymentJson(payment, accountAuditLogs);
@@ -142,7 +142,7 @@ public class PaymentResource extends ComboPaymentResource {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
verifyNonNullOrEmpty(paymentExternalKey, "Payment externalKey needs to be specified");
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Payment payment = paymentApi.getPaymentByExternalKey(paymentExternalKey, withPluginInfo, withAttempts, pluginProperties, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(payment.getAccountId(), auditMode.getLevel(), tenantContext);
final PaymentJson result = new PaymentJson(payment, accountAuditLogs);
@@ -164,7 +164,7 @@ public class PaymentResource extends ComboPaymentResource {
@QueryParam(QUERY_WITH_ATTEMPTS) @DefaultValue("false") final Boolean withAttempts,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<Payment> payments;
if (Strings.isNullOrEmpty(pluginName)) {
@@ -209,7 +209,7 @@ public class PaymentResource extends ComboPaymentResource {
@QueryParam(QUERY_WITH_ATTEMPTS) @DefaultValue("false") final Boolean withAttempts,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
// Search the plugin(s)
final Pagination<Payment> payments;
@@ -310,7 +310,7 @@ public class PaymentResource extends ComboPaymentResource {
final Iterable<PluginProperty> pluginProperties = Iterables.concat(pluginPropertiesFromQuery, pluginPropertiesFromBody);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Payment initialPayment = getPaymentByIdOrKey(paymentIdStr, json == null ? null : json.getPaymentExternalKey(), pluginProperties, callContext);
final Account account = accountUserApi.getAccountById(initialPayment.getAccountId(), callContext);
@@ -423,7 +423,7 @@ public class PaymentResource extends ComboPaymentResource {
verifyNonNullOrEmpty(json.getAmount(), "PaymentTransactionJson amount needs to be set");
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Payment initialPayment = getPaymentByIdOrKey(paymentIdStr, json.getPaymentExternalKey(), pluginProperties, callContext);
final Account account = accountUserApi.getAccountById(initialPayment.getAccountId(), callContext);
@@ -501,7 +501,7 @@ public class PaymentResource extends ComboPaymentResource {
verifyNonNullOrEmpty(json.getAmount(), "PaymentTransactionJson amount needs to be set");
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Payment initialPayment = getPaymentByIdOrKey(paymentIdStr, json.getPaymentExternalKey(), pluginProperties, callContext);
final Account account = accountUserApi.getAccountById(initialPayment.getAccountId(), callContext);
@@ -574,7 +574,7 @@ public class PaymentResource extends ComboPaymentResource {
final UriInfo uriInfo,
final HttpServletRequest request) throws PaymentApiException, AccountApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Payment initialPayment = getPaymentByIdOrKey(paymentIdStr, json.getPaymentExternalKey(), pluginProperties, callContext);
final Account account = accountUserApi.getAccountById(initialPayment.getAccountId(), callContext);
@@ -650,7 +650,7 @@ public class PaymentResource extends ComboPaymentResource {
verifyNonNullOrEmpty(json.getAmount(), "PaymentTransactionJson amount needs to be set");
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Payment initialPayment = getPaymentByIdOrKey(paymentIdStr, json.getPaymentExternalKey(), pluginProperties, callContext);
final Account account = accountUserApi.getAccountById(initialPayment.getAccountId(), callContext);
@@ -726,7 +726,7 @@ public class PaymentResource extends ComboPaymentResource {
verifyNonNullOrEmpty(json.getTransactionExternalKey(), "PaymentTransactionJson transactionExternalKey needs to be set");
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Payment initialPayment = getPaymentByIdOrKey(paymentIdStr, json.getPaymentExternalKey(), pluginProperties, callContext);
final Account account = accountUserApi.getAccountById(initialPayment.getAccountId(), callContext);
@@ -760,7 +760,7 @@ public class PaymentResource extends ComboPaymentResource {
verifyNonNullOrEmpty(json, "ComboPaymentTransactionJson body should be specified");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Account account = getOrCreateAccount(json.getAccount(), callContext);
final Iterable<PluginProperty> paymentMethodPluginProperties = extractPluginProperties(json.getPaymentMethodPluginProperties());
@@ -810,7 +810,7 @@ public class PaymentResource extends ComboPaymentResource {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
paymentApi.cancelScheduledPaymentTransaction(UUID.fromString(paymentTransactionId), callContext);
return Response.status(Status.OK).build();
}
@@ -828,7 +828,7 @@ public class PaymentResource extends ComboPaymentResource {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException, AccountApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
paymentApi.cancelScheduledPaymentTransaction(paymentTransactionExternalKey, callContext);
return Response.status(Status.OK).build();
}
@@ -845,7 +845,7 @@ public class PaymentResource extends ComboPaymentResource {
public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String id,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(id), auditMode, context.createContext(request));
+ return super.getCustomFields(UUID.fromString(id), auditMode, context.createTenantContextNoAccountId(request));
}
@TimedResource
@@ -863,7 +863,7 @@ public class PaymentResource extends ComboPaymentResource {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), uriInfo, request);
}
@TimedResource
@@ -880,7 +880,7 @@ public class PaymentResource extends ComboPaymentResource {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
return super.deleteCustomFields(UUID.fromString(id), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@TimedResource
@@ -894,7 +894,7 @@ public class PaymentResource extends ComboPaymentResource {
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@QueryParam(QUERY_TAGS_INCLUDED_DELETED) @DefaultValue("false") final Boolean includedDeleted,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException, PaymentApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final UUID paymentId = UUID.fromString(id);
final Payment payment = paymentApi.getPayment(paymentId, false, false, ImmutableList.<PluginProperty>of(), tenantContext);
return super.getTags(payment.getAccountId(), paymentId, auditMode, includedDeleted, tenantContext);
@@ -915,7 +915,7 @@ public class PaymentResource extends ComboPaymentResource {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.createTags(UUID.fromString(id), tagList, uriInfo,
- context.createContext(createdBy, reason, comment, request), request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), request);
}
@TimedResource
@@ -932,7 +932,7 @@ public class PaymentResource extends ComboPaymentResource {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.deleteTags(UUID.fromString(id), tagList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SecurityResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SecurityResource.java
index 77d72c2..c537f6b 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SecurityResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SecurityResource.java
@@ -122,7 +122,7 @@ public class SecurityResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws SecurityApiException {
- securityApi.addUserRoles(json.getUsername(), json.getPassword(), json.getRoles(), context.createContext(createdBy, reason, comment, request));
+ securityApi.addUserRoles(json.getUsername(), json.getPassword(), json.getRoles(), context.createCallContextNoAccountId(createdBy, reason, comment, request));
return Response.status(Status.CREATED).build();
}
@@ -139,7 +139,7 @@ public class SecurityResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws SecurityApiException {
- securityApi.updateUserPassword(username, json.getPassword(), context.createContext(createdBy, reason, comment, request));
+ securityApi.updateUserPassword(username, json.getPassword(), context.createCallContextNoAccountId(createdBy, reason, comment, request));
return Response.status(Status.OK).build();
}
@@ -151,7 +151,7 @@ public class SecurityResource extends JaxRsResourceBase {
public Response getUserRoles(@PathParam("username") final String username,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws SecurityApiException {
- final List<String> roles = securityApi.getUserRoles(username, context.createContext(request));
+ final List<String> roles = securityApi.getUserRoles(username, context.createTenantContextNoAccountId(request));
final UserRolesJson userRolesJson = new UserRolesJson(username, null, roles);
return Response.status(Status.OK).entity(userRolesJson).build();
}
@@ -169,7 +169,7 @@ public class SecurityResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws SecurityApiException {
- securityApi.updateUserRoles(username, json.getRoles(), context.createContext(createdBy, reason, comment, request));
+ securityApi.updateUserRoles(username, json.getRoles(), context.createCallContextNoAccountId(createdBy, reason, comment, request));
return Response.status(Status.OK).build();
}
@@ -185,7 +185,7 @@ public class SecurityResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws SecurityApiException {
- securityApi.invalidateUser(username, context.createContext(createdBy, reason, comment, request));
+ securityApi.invalidateUser(username, context.createCallContextNoAccountId(createdBy, reason, comment, request));
return Response.status(Status.NO_CONTENT).build();
}
@@ -203,7 +203,7 @@ public class SecurityResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws SecurityApiException {
- securityApi.addRoleDefinition(json.getRole(), json.getPermissions(), context.createContext(createdBy, reason, comment, request));
+ securityApi.addRoleDefinition(json.getRole(), json.getPermissions(), context.createCallContextNoAccountId(createdBy, reason, comment, request));
return Response.status(Status.CREATED).build();
}
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
index 7eb19a1..0d0f00c 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/SubscriptionResource.java
@@ -155,7 +155,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, AccountApiException, CatalogApiException {
final UUID uuid = UUID.fromString(subscriptionId);
- final TenantContext context = this.context.createContext(request);
+ final TenantContext context = this.context.createTenantContextNoAccountId(request);
final Subscription subscription = subscriptionApi.getSubscriptionForEntitlementId(uuid, context);
final Account account = accountUserApi.getAccountById(subscription.getAccountId(), context);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(subscription.getAccountId(), auditMode.getLevel(), context);
@@ -200,7 +200,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
}
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final EntitlementCallCompletionCallback<Entitlement> callback = new EntitlementCallCompletionCallback<Entitlement>() {
@Override
@@ -316,7 +316,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
logDeprecationParameterWarningIfNeeded(QUERY_REQUESTED_DT, QUERY_ENTITLEMENT_REQUESTED_DT, QUERY_BILLING_REQUESTED_DT);
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Account account = accountUserApi.getAccountById(UUID.fromString(entitlementsWithAddOns.get(0).getBaseEntitlementAndAddOns().get(0).getAccountId()), callContext);
@@ -507,8 +507,8 @@ public class SubscriptionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws EntitlementApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final UUID uuid = UUID.fromString(subscriptionId);
- final Entitlement current = entitlementApi.getEntitlementForId(uuid, context.createContext(createdBy, reason, comment, request));
- current.uncancelEntitlement(pluginProperties, context.createContext(createdBy, reason, comment, request));
+ final Entitlement current = entitlementApi.getEntitlementForId(uuid, context.createCallContextNoAccountId(createdBy, reason, comment, request));
+ current.uncancelEntitlement(pluginProperties, context.createCallContextNoAccountId(createdBy, reason, comment, request));
return Response.status(Status.OK).build();
}
@@ -539,7 +539,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
}
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final EntitlementCallCompletionCallback<Response> callback = new EntitlementCallCompletionCallback<Response>() {
@@ -632,7 +632,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws EntitlementApiException, AccountApiException, SubscriptionApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final EntitlementCallCompletionCallback<Response> callback = new EntitlementCallCompletionCallback<Response>() {
@@ -706,7 +706,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json.getBillCycleDayLocal(), "SubscriptionJson new BCD should be specified");
LocalDate effectiveFromDate = toLocalDate(effectiveFromDateStr);
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID subscriptionId = UUID.fromString(id);
@@ -845,7 +845,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String id,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(id), auditMode, context.createContext(request));
+ return super.getCustomFields(UUID.fromString(id), auditMode, context.createTenantContextNoAccountId(request));
}
@POST
@@ -862,7 +862,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), uriInfo, request);
}
@DELETE
@@ -879,7 +879,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
return super.deleteCustomFields(UUID.fromString(id), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@GET
@@ -893,7 +893,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@QueryParam(QUERY_INCLUDED_DELETED) @DefaultValue("false") final Boolean includedDeleted,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException, SubscriptionApiException {
final UUID subscriptionId = UUID.fromString(subscriptionIdString);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Subscription subscription = subscriptionApi.getSubscriptionForEntitlementId(subscriptionId, tenantContext);
return super.getTags(subscription.getAccountId(), subscriptionId, auditMode, includedDeleted, tenantContext);
}
@@ -912,7 +912,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.createTags(UUID.fromString(id), tagList, uriInfo,
- context.createContext(createdBy, reason, comment, request), request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), request);
}
@DELETE
@@ -928,7 +928,7 @@ public class SubscriptionResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.deleteTags(UUID.fromString(id), tagList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
index 90e9b8e..d5cfaa0 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagDefinitionResource.java
@@ -85,7 +85,7 @@ public class TagDefinitionResource extends JaxRsResourceBase {
@ApiResponses(value = {})
public Response getTagDefinitions(@javax.ws.rs.core.Context final HttpServletRequest request,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode) {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final List<TagDefinition> tagDefinitions = tagUserApi.getTagDefinitions(tenantContext);
final Collection<TagDefinitionJson> result = new LinkedList<TagDefinitionJson>();
@@ -106,7 +106,7 @@ public class TagDefinitionResource extends JaxRsResourceBase {
public Response getTagDefinition(@PathParam("tagDefinitionId") final String tagDefId,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final TagDefinition tagDefinition = tagUserApi.getTagDefinition(UUID.fromString(tagDefId), tenantContext);
final List<AuditLog> auditLogs = auditUserApi.getAuditLogs(tagDefinition.getId(), ObjectType.TAG_DEFINITION, auditMode.getLevel(), tenantContext);
final TagDefinitionJson json = new TagDefinitionJson(tagDefinition, auditLogs);
@@ -130,7 +130,7 @@ public class TagDefinitionResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json.getName(), "TagDefinition name needs to be set",
json.getDescription(), "TagDefinition description needs to be set");
- final TagDefinition createdTagDef = tagUserApi.createTagDefinition(json.getName(), json.getDescription(), context.createContext(createdBy, reason, comment, request));
+ final TagDefinition createdTagDef = tagUserApi.createTagDefinition(json.getName(), json.getDescription(), context.createCallContextNoAccountId(createdBy, reason, comment, request));
return uriBuilder.buildResponse(uriInfo, TagDefinitionResource.class, "getTagDefinition", createdTagDef.getId(), request);
}
@@ -145,7 +145,7 @@ public class TagDefinitionResource extends JaxRsResourceBase {
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException {
- tagUserApi.deleteTagDefinition(UUID.fromString(tagDefId), context.createContext(createdBy, reason, comment, request));
+ tagUserApi.deleteTagDefinition(UUID.fromString(tagDefId), context.createCallContextNoAccountId(createdBy, reason, comment, request));
return Response.status(Status.NO_CONTENT).build();
}
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagResource.java
index 5c6350d..c634f84 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TagResource.java
@@ -86,7 +86,7 @@ public class TagResource extends JaxRsResourceBase {
@QueryParam(QUERY_SEARCH_LIMIT) @DefaultValue("100") final Long limit,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<Tag> tags = tagUserApi.getTags(offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(TagResource.class, "getTags", tags.getNextOffset(), limit, ImmutableMap.<String, String>of(QUERY_AUDIT, auditMode.getLevel().toString()));
@@ -120,7 +120,7 @@ public class TagResource extends JaxRsResourceBase {
@QueryParam(QUERY_SEARCH_LIMIT) @DefaultValue("100") final Long limit,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Pagination<Tag> tags = tagUserApi.searchTags(searchKey, offset, limit, tenantContext);
final URI nextPageUri = uriBuilder.nextPage(TagResource.class, "searchTags", tags.getNextOffset(), limit, ImmutableMap.<String, String>of("searchKey", searchKey,
QUERY_AUDIT, auditMode.getLevel().toString()));
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
index e3cbaa2..17ab9cd 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TenantResource.java
@@ -136,9 +136,9 @@ public class TenantResource extends JaxRsResourceBase {
json.getApiSecret(), "TenantJson apiSecret needs to be set");
final TenantData data = json.toTenantData();
- final Tenant tenant = tenantApi.createTenant(data, context.createContext(createdBy, reason, comment, request));
+ final Tenant tenant = tenantApi.createTenant(data, context.createCallContextNoAccountId(createdBy, reason, comment, request));
if (!useGlobalDefault) {
- final CallContext callContext = new DefaultCallContext(tenant.getId(), createdBy, CallOrigin.EXTERNAL,
+ final CallContext callContext = new DefaultCallContext(null, tenant.getId(), createdBy, CallOrigin.EXTERNAL,
UserType.CUSTOMER, Context.getOrCreateUserToken(), clock);
catalogUserApi.createDefaultEmptyCatalog(clock.getUTCNow(),callContext);
}
@@ -236,7 +236,7 @@ public class TenantResource extends JaxRsResourceBase {
public Response getAllPluginConfiguration(@PathParam("keyPrefix") final String keyPrefix,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Map<String, List<String>> apiResult = tenantApi.searchTenantKeyValues(keyPrefix, tenantContext);
final List<TenantKeyJson> result = new ArrayList<TenantKeyJson>();
for (final String cur : apiResult.keySet()) {
@@ -339,7 +339,7 @@ public class TenantResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws TenantApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
tenantApi.addTenantKeyValue(key, value, callContext);
return uriBuilder.buildResponse(uriInfo, TenantResource.class, "getUserKeyValue", key, request);
}
@@ -352,7 +352,7 @@ public class TenantResource extends JaxRsResourceBase {
@ApiResponses(value = {@ApiResponse(code = 400, message = "Invalid tenantId supplied")})
public Response getUserKeyValue(@PathParam("keyName") final String key,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final List<String> values = tenantApi.getTenantValuesForKey(key, tenantContext);
final TenantKeyJson result = new TenantKeyJson(key, values);
return Response.status(Status.OK).entity(result).build();
@@ -369,7 +369,7 @@ public class TenantResource extends JaxRsResourceBase {
@HeaderParam(HDR_REASON) final String reason,
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TenantApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
tenantApi.deleteTenantKey(key, callContext);
return Response.status(Status.OK).build();
}
@@ -385,7 +385,7 @@ public class TenantResource extends JaxRsResourceBase {
final String reason,
final String comment,
final HttpServletRequest request) throws TenantApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final String tenantKey = keyPostfix != null ? key.toString() + keyPostfix : key.toString();
tenantApi.addTenantKeyValue(tenantKey, value, callContext);
@@ -397,7 +397,7 @@ public class TenantResource extends JaxRsResourceBase {
private Response getTenantKey(final TenantKey key,
@Nullable final String keyPostfix,
final HttpServletRequest request) throws TenantApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final String tenantKey = keyPostfix != null ? key.toString() + keyPostfix : key.toString();
final List<String> values = tenantApi.getTenantValuesForKey(tenantKey, tenantContext);
final TenantKeyJson result = new TenantKeyJson(tenantKey, values);
@@ -410,7 +410,7 @@ public class TenantResource extends JaxRsResourceBase {
final String reason,
final String comment,
final HttpServletRequest request) throws TenantApiException {
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final String tenantKey = keyPostfix != null ? key.toString() + keyPostfix : key.toString();
tenantApi.deleteTenantKey(tenantKey, callContext);
return Response.status(Status.OK).build();
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TestResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TestResource.java
index 261238a..54bcfa6 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TestResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TestResource.java
@@ -202,7 +202,7 @@ public class TestResource extends JaxRsResourceBase {
}
private boolean waitForNotificationToComplete(final ServletRequest request, final Long timeoutSec) {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Long tenantRecordId = recordIdApi.getRecordId(tenantContext.getTenantId(), ObjectType.TENANT, tenantContext);
int nbTryLeft = timeoutSec != null ? timeoutSec.intValue() : 0;
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java
index da45da3..7972a37 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/TransactionResource.java
@@ -102,7 +102,7 @@ public class TransactionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws PaymentApiException {
final Iterable<PluginProperty> pluginProperties = extractPluginProperties(pluginPropertiesString);
final UUID transactionIdId = UUID.fromString(transactionIdStr);
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Payment payment = paymentApi.getPaymentByTransactionId(transactionIdId, withPluginInfo, withAttempts, pluginProperties, tenantContext);
final AccountAuditLogs accountAuditLogs = auditUserApi.getAccountAuditLogs(payment.getAccountId(), auditMode.getLevel(), tenantContext);
final PaymentJson result = new PaymentJson(payment, accountAuditLogs);
@@ -128,7 +128,7 @@ public class TransactionResource extends JaxRsResourceBase {
verifyNonNullOrEmpty(json.getPaymentId(), "PaymentTransactionJson paymentId needs to be set",
json.getStatus(), "PaymentTransactionJson status needs to be set");
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
final UUID paymentId = UUID.fromString(json.getPaymentId());
final Payment payment = paymentApi.getPayment(paymentId, false, false, ImmutableList.<PluginProperty>of(), callContext);
@@ -149,7 +149,7 @@ public class TransactionResource extends JaxRsResourceBase {
public Response getCustomFields(@PathParam(ID_PARAM_NAME) final String id,
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@javax.ws.rs.core.Context final HttpServletRequest request) {
- return super.getCustomFields(UUID.fromString(id), auditMode, context.createContext(request));
+ return super.getCustomFields(UUID.fromString(id), auditMode, context.createTenantContextNoAccountId(request));
}
@TimedResource
@@ -167,7 +167,7 @@ public class TransactionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request,
@javax.ws.rs.core.Context final UriInfo uriInfo) throws CustomFieldApiException {
return super.createCustomFields(UUID.fromString(id), customFields,
- context.createContext(createdBy, reason, comment, request), uriInfo, request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), uriInfo, request);
}
@TimedResource
@@ -184,7 +184,7 @@ public class TransactionResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws CustomFieldApiException {
return super.deleteCustomFields(UUID.fromString(id), customFieldList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@TimedResource
@@ -198,7 +198,7 @@ public class TransactionResource extends JaxRsResourceBase {
@QueryParam(QUERY_AUDIT) @DefaultValue("NONE") final AuditMode auditMode,
@QueryParam(QUERY_TAGS_INCLUDED_DELETED) @DefaultValue("false") final Boolean includedDeleted,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagDefinitionApiException, PaymentApiException {
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final Payment payment = paymentApi.getPaymentByTransactionId(UUID.fromString(id), false, false, ImmutableList.<PluginProperty>of(), tenantContext);
return super.getTags(payment.getAccountId(), UUID.fromString(id), auditMode, includedDeleted, tenantContext);
}
@@ -218,7 +218,7 @@ public class TransactionResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final UriInfo uriInfo,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.createTags(UUID.fromString(id), tagList, uriInfo,
- context.createContext(createdBy, reason, comment, request), request);
+ context.createCallContextNoAccountId(createdBy, reason, comment, request), request);
}
@TimedResource
@@ -235,7 +235,7 @@ public class TransactionResource extends JaxRsResourceBase {
@HeaderParam(HDR_COMMENT) final String comment,
@javax.ws.rs.core.Context final HttpServletRequest request) throws TagApiException {
return super.deleteTags(UUID.fromString(id), tagList,
- context.createContext(createdBy, reason, comment, request));
+ context.createCallContextNoAccountId(createdBy, reason, comment, request));
}
@Override
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/UsageResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/UsageResource.java
index 6434b39..85029aa 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/UsageResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/UsageResource.java
@@ -121,7 +121,7 @@ public class UsageResource extends JaxRsResourceBase {
verifyNonNull(usageRecordJson.getRecordDate(), "UsageRecordJson recordDate needs to be set");
}
}
- final CallContext callContext = context.createContext(createdBy, reason, comment, request);
+ final CallContext callContext = context.createCallContextNoAccountId(createdBy, reason, comment, request);
// Verify subscription exists..
final Entitlement entitlement = entitlementApi.getEntitlementForId(UUID.fromString(json.getSubscriptionId()), callContext);
if (entitlement.getState() != EntitlementState.ACTIVE) {
@@ -147,7 +147,7 @@ public class UsageResource extends JaxRsResourceBase {
if (startDate == null || endDate == null) {
return Response.status(Status.BAD_REQUEST).build();
}
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final LocalDate usageStartDate = LOCAL_DATE_FORMATTER.parseLocalDate(startDate);
final LocalDate usageEndDate = LOCAL_DATE_FORMATTER.parseLocalDate(endDate);
@@ -171,7 +171,7 @@ public class UsageResource extends JaxRsResourceBase {
if (startDate == null || endDate == null) {
return Response.status(Status.BAD_REQUEST).build();
}
- final TenantContext tenantContext = context.createContext(request);
+ final TenantContext tenantContext = context.createTenantContextNoAccountId(request);
final LocalDate usageStartDate = LOCAL_DATE_FORMATTER.parseLocalDate(startDate);
final LocalDate usageEndDate = LOCAL_DATE_FORMATTER.parseLocalDate(endDate);
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/Context.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/Context.java
index 8e8dc7c..a920744 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/Context.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/util/Context.java
@@ -51,12 +51,18 @@ public class Context {
this.internalCallContextFactory = internalCallContextFactory;
}
- public CallContext createContext(final String createdBy, final String reason, final String comment, final ServletRequest request)
+ public CallContext createCallContextNoAccountId(final String createdBy, final String reason, final String comment, final ServletRequest request)
+ throws IllegalArgumentException {
+ return createCallContextWithAccountId(null, createdBy, reason, comment, request);
+ }
+
+ public CallContext createCallContextWithAccountId(final UUID accountId, final String createdBy, final String reason, final String comment, final ServletRequest request)
throws IllegalArgumentException {
try {
Preconditions.checkNotNull(createdBy, String.format("Header %s needs to be set", JaxrsResource.HDR_CREATED_BY));
final Tenant tenant = getTenantFromRequest(request);
- final CallContext callContext = contextFactory.createCallContext(tenant == null ? null : tenant.getId(), createdBy, origin, userType, reason,
+ final UUID tenantId = tenant == null ? null : tenant.getId();
+ final CallContext callContext = contextFactory.createCallContext(accountId, tenantId, createdBy, origin, userType, reason,
comment, getOrCreateUserToken());
populateMDCContext(callContext);
@@ -67,15 +73,19 @@ public class Context {
}
}
- public TenantContext createContext(final ServletRequest request) {
+ public TenantContext createTenantContextNoAccountId(final ServletRequest request) {
+ return createTenantContextWithAccountId(null, request);
+ }
+
+ public TenantContext createTenantContextWithAccountId(final UUID accountId, final ServletRequest request) {
final TenantContext tenantContext;
final Tenant tenant = getTenantFromRequest(request);
if (tenant == null) {
// Multi-tenancy may not have been configured - default to "default" tenant (see InternalCallContextFactory)
- tenantContext = contextFactory.createTenantContext(null);
+ tenantContext = contextFactory.createTenantContext(accountId, null);
} else {
- tenantContext = contextFactory.createTenantContext(tenant.getId());
+ tenantContext = contextFactory.createTenantContext(accountId, tenant.getId());
}
populateMDCContext(tenantContext);
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java b/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java
index f29b8b6..409c770 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/janitor/CompletionTaskBase.java
@@ -149,6 +149,6 @@ abstract class CompletionTaskBase<T> implements Runnable {
protected CallContext createCallContext(final String taskName, final InternalTenantContext internalTenantContext) {
final TenantContext tenantContext = internalCallContextFactory.createTenantContext(internalTenantContext);
- return new DefaultCallContext(tenantContext.getTenantId(), taskName, CallOrigin.INTERNAL, UserType.SYSTEM, UUIDs.randomUUID(), clock);
+ return new DefaultCallContext(null, tenantContext.getTenantId(), taskName, CallOrigin.INTERNAL, UserType.SYSTEM, UUIDs.randomUUID(), clock);
}
}
diff --git a/payment/src/main/java/org/killbill/billing/payment/core/sm/control/ControlPluginRunner.java b/payment/src/main/java/org/killbill/billing/payment/core/sm/control/ControlPluginRunner.java
index bb1bbb6..c132bea 100644
--- a/payment/src/main/java/org/killbill/billing/payment/core/sm/control/ControlPluginRunner.java
+++ b/payment/src/main/java/org/killbill/billing/payment/core/sm/control/ControlPluginRunner.java
@@ -319,7 +319,7 @@ public class ControlPluginRunner {
@Nullable final Currency processedCurrency,
final boolean isApiPayment,
final CallContext callContext) {
- super(callContext.getTenantId(), callContext.getUserName(), callContext.getCallOrigin(), callContext.getUserType(), callContext.getReasonCode(), callContext.getComments(), callContext.getUserToken(), callContext.getCreatedDate(), callContext.getUpdatedDate());
+ super(account.getId(), callContext.getTenantId(), callContext.getUserName(), callContext.getCallOrigin(), callContext.getUserType(), callContext.getReasonCode(), callContext.getComments(), callContext.getUserToken(), callContext.getCreatedDate(), callContext.getUpdatedDate());
this.account = account;
this.paymentMethodId = paymentMethodId;
this.attemptId = attemptId;
diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/notifications/PushNotificationListener.java b/profiles/killbill/src/main/java/org/killbill/billing/server/notifications/PushNotificationListener.java
index afa18cf..aa6e337 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/notifications/PushNotificationListener.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/notifications/PushNotificationListener.java
@@ -98,7 +98,7 @@ public class PushNotificationListener {
@AllowConcurrentEvents
@Subscribe
public void triggerPushNotifications(final ExtBusEvent event) {
- final TenantContext context = contextFactory.createTenantContext(event.getTenantId());
+ final TenantContext context = contextFactory.createTenantContext(event.getAccountId(), event.getTenantId());
try {
final List<String> callbacks = getCallbacksForTenant(context);
if (callbacks.isEmpty()) {
@@ -171,7 +171,7 @@ public class PushNotificationListener {
notificationJson.getObjectId() != null ? UUID.fromString(notificationJson.getObjectId()) : null,
attemptRetryNumber + 1, url);
- final TenantContext tenantContext = contextFactory.createTenantContext(tenantId);
+ final TenantContext tenantContext = contextFactory.createTenantContext(null, tenantId);
final DateTime nextNotificationTime = getNextNotificationTime(key.getAttemptNumber(), internalCallContextFactory.createInternalTenantContextWithoutAccountRecordId(tenantContext));
if (nextNotificationTime == null) {
diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java b/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java
index 34cb5d3..7b460c0 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/security/TenantFilter.java
@@ -105,7 +105,7 @@ public class TenantFilter implements Filter {
request.setAttribute(TENANT, tenant);
// Create a dummy context, to set the MDC very early for LoggingFilter
- context.createContext(request);
+ context.createTenantContextNoAccountId(request);
chain.doFilter(request, response);
} catch (final TenantApiException e) {
diff --git a/util/src/main/java/org/killbill/billing/util/callcontext/CallContextFactory.java b/util/src/main/java/org/killbill/billing/util/callcontext/CallContextFactory.java
index 3fb5188..6d9b5f7 100644
--- a/util/src/main/java/org/killbill/billing/util/callcontext/CallContextFactory.java
+++ b/util/src/main/java/org/killbill/billing/util/callcontext/CallContextFactory.java
@@ -24,8 +24,8 @@ import javax.annotation.Nullable;
public interface CallContextFactory {
- TenantContext createTenantContext(@Nullable UUID tenantId);
+ TenantContext createTenantContext(@Nullable UUID accountId, @Nullable UUID tenantId);
- CallContext createCallContext(@Nullable UUID tenantId, String userName, CallOrigin callOrigin, UserType userType,
+ CallContext createCallContext(@Nullable UUID accountId, @Nullable UUID tenantId, String userName, CallOrigin callOrigin, UserType userType,
String reasonCode, String comment, UUID userToken);
}
diff --git a/util/src/main/java/org/killbill/billing/util/callcontext/DefaultCallContextFactory.java b/util/src/main/java/org/killbill/billing/util/callcontext/DefaultCallContextFactory.java
index 30ba050..43dc048 100644
--- a/util/src/main/java/org/killbill/billing/util/callcontext/DefaultCallContextFactory.java
+++ b/util/src/main/java/org/killbill/billing/util/callcontext/DefaultCallContextFactory.java
@@ -36,13 +36,13 @@ public class DefaultCallContextFactory implements CallContextFactory {
}
@Override
- public TenantContext createTenantContext(final UUID tenantId) {
- return new DefaultTenantContext(tenantId);
+ public TenantContext createTenantContext(@Nullable final UUID accountId, final UUID tenantId) {
+ return new DefaultTenantContext(accountId, tenantId);
}
@Override
- public CallContext createCallContext(@Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin,
+ public CallContext createCallContext(@Nullable final UUID accountId, @Nullable final UUID tenantId, final String userName, final CallOrigin callOrigin,
final UserType userType, final String reasonCode, final String comment, final UUID userToken) {
- return new DefaultCallContext(tenantId, userName, callOrigin, userType, reasonCode, comment, userToken, clock);
+ return new DefaultCallContext(accountId, tenantId, userName, callOrigin, userType, reasonCode, comment, userToken, clock);
}
}
diff --git a/util/src/main/java/org/killbill/billing/util/callcontext/InternalCallContextFactory.java b/util/src/main/java/org/killbill/billing/util/callcontext/InternalCallContextFactory.java
index a42fe24..930e0b1 100644
--- a/util/src/main/java/org/killbill/billing/util/callcontext/InternalCallContextFactory.java
+++ b/util/src/main/java/org/killbill/billing/util/callcontext/InternalCallContextFactory.java
@@ -86,13 +86,15 @@ public class InternalCallContextFactory {
//
public TenantContext createTenantContext(final InternalTenantContext context) {
+ final UUID accountId = getAccountIdSafe(context);
final UUID tenantId = getTenantIdSafe(context);
- return context.toTenantContext(tenantId);
+ return context.toTenantContext(accountId, tenantId);
}
public CallContext createCallContext(final InternalCallContext context) {
+ final UUID accountId = getAccountIdSafe(context);
final UUID tenantId = getTenantIdSafe(context);
- return context.toCallContext(tenantId);
+ return context.toCallContext(accountId, tenantId);
}
//
@@ -388,6 +390,10 @@ public class InternalCallContextFactory {
return nonEntityDao.retrieveIdFromObject(context.getTenantRecordId(), ObjectType.TENANT, objectIdCacheController);
}
+ private UUID getAccountIdSafe(final InternalTenantContext context) {
+ return context.getAccountRecordId() != null ? nonEntityDao.retrieveIdFromObject(context.getAccountRecordId(), ObjectType.ACCOUNT, objectIdCacheController) : null;
+ }
+
//
// In-code tenant checkers
//
diff --git a/util/src/main/java/org/killbill/billing/util/dao/AuditLogModelDaoMapper.java b/util/src/main/java/org/killbill/billing/util/dao/AuditLogModelDaoMapper.java
index 5bae32d..9f57e77 100644
--- a/util/src/main/java/org/killbill/billing/util/dao/AuditLogModelDaoMapper.java
+++ b/util/src/main/java/org/killbill/billing/util/dao/AuditLogModelDaoMapper.java
@@ -45,7 +45,7 @@ public class AuditLogModelDaoMapper extends MapperBase implements ResultSetMappe
final EntityAudit entityAudit = new EntityAudit(id, TableName.valueOf(tableName), targetRecordId, ChangeType.valueOf(changeType), createdDate);
// TODO - we have the tenant_record_id but not the tenant id here
- final CallContext callContext = new DefaultCallContext(null, createdBy, createdDate, reasonCode, comments, userToken);
+ final CallContext callContext = new DefaultCallContext(null, null, createdBy, createdDate, reasonCode, comments, userToken);
return new AuditLogModelDao(entityAudit, callContext);
}
}
diff --git a/util/src/main/java/org/killbill/billing/util/security/PermissionAnnotationHandler.java b/util/src/main/java/org/killbill/billing/util/security/PermissionAnnotationHandler.java
index 647b598..118427f 100644
--- a/util/src/main/java/org/killbill/billing/util/security/PermissionAnnotationHandler.java
+++ b/util/src/main/java/org/killbill/billing/util/security/PermissionAnnotationHandler.java
@@ -37,7 +37,7 @@ import com.google.common.collect.ImmutableList;
public class PermissionAnnotationHandler extends AuthorizingAnnotationHandler {
- private final TenantContext context = new DefaultTenantContext(null);
+ private final TenantContext context = new DefaultTenantContext(null, null);
@Inject
SecurityApi securityApi;
diff --git a/util/src/test/java/org/killbill/billing/GuicyKillbillTestModule.java b/util/src/test/java/org/killbill/billing/GuicyKillbillTestModule.java
index 3aea65b..e253aac 100644
--- a/util/src/test/java/org/killbill/billing/GuicyKillbillTestModule.java
+++ b/util/src/test/java/org/killbill/billing/GuicyKillbillTestModule.java
@@ -52,7 +52,7 @@ public class GuicyKillbillTestModule extends KillBillModule {
GuicyKillbillTestSuite.getClock().getUTCNow(),
GuicyKillbillTestSuite.getClock().getUTCNow());
- private final CallContext callContext = internalCallContext.toCallContext(null);
+ private final CallContext callContext = internalCallContext.toCallContext(null,null);
public GuicyKillbillTestModule(final KillbillConfigSource configSource) {
super(configSource);
diff --git a/util/src/test/java/org/killbill/billing/util/audit/TestDefaultAuditLog.java b/util/src/test/java/org/killbill/billing/util/audit/TestDefaultAuditLog.java
index 7de9941..8ef5a77 100644
--- a/util/src/test/java/org/killbill/billing/util/audit/TestDefaultAuditLog.java
+++ b/util/src/test/java/org/killbill/billing/util/audit/TestDefaultAuditLog.java
@@ -41,13 +41,14 @@ public class TestDefaultAuditLog extends UtilTestSuiteNoDB {
final ChangeType changeType = ChangeType.DELETE;
final EntityAudit entityAudit = new EntityAudit(tableName, recordId, changeType, null);
+ final UUID accountId = UUID.randomUUID();
final UUID tenantId = UUID.randomUUID();
final String userName = UUID.randomUUID().toString();
final CallOrigin callOrigin = CallOrigin.EXTERNAL;
final UserType userType = UserType.CUSTOMER;
final UUID userToken = UUID.randomUUID();
final ClockMock clock = new ClockMock();
- final CallContext callContext = new DefaultCallContext(tenantId, userName, callOrigin, userType, userToken, clock);
+ final CallContext callContext = new DefaultCallContext(accountId, tenantId, userName, callOrigin, userType, userToken, clock);
final AuditLog auditLog = new DefaultAuditLog(new AuditLogModelDao(entityAudit, callContext), ObjectType.ACCOUNT_EMAIL, UUID.randomUUID());
Assert.assertEquals(auditLog.getChangeType(), changeType);
@@ -65,13 +66,14 @@ public class TestDefaultAuditLog extends UtilTestSuiteNoDB {
final ChangeType changeType = ChangeType.DELETE;
final EntityAudit entityAudit = new EntityAudit(tableName, recordId, changeType, null);
+ final UUID accountId = UUID.randomUUID();
final UUID tenantId = UUID.randomUUID();
final String userName = UUID.randomUUID().toString();
final CallOrigin callOrigin = CallOrigin.EXTERNAL;
final UserType userType = UserType.CUSTOMER;
final UUID userToken = UUID.randomUUID();
final ClockMock clock = new ClockMock();
- final CallContext callContext = new DefaultCallContext(tenantId, userName, callOrigin, userType, userToken, clock);
+ final CallContext callContext = new DefaultCallContext(accountId, tenantId, userName, callOrigin, userType, userToken, clock);
final AuditLogModelDao auditLog = new AuditLogModelDao(entityAudit, callContext);
Assert.assertEquals(auditLog, auditLog);
@@ -80,7 +82,7 @@ public class TestDefaultAuditLog extends UtilTestSuiteNoDB {
Assert.assertEquals(sameAuditLog, auditLog);
clock.addMonths(1);
- final CallContext otherCallContext = new DefaultCallContext(tenantId, userName, callOrigin, userType, userToken, clock);
+ final CallContext otherCallContext = new DefaultCallContext(accountId, tenantId, userName, callOrigin, userType, userToken, clock);
final AuditLogModelDao otherAuditLog = new AuditLogModelDao(entityAudit, otherCallContext);
Assert.assertNotEquals(otherAuditLog, auditLog);
}
diff --git a/util/src/test/java/org/killbill/billing/util/callcontext/TestCallContext.java b/util/src/test/java/org/killbill/billing/util/callcontext/TestCallContext.java
index 43a57cf..61cd769 100644
--- a/util/src/test/java/org/killbill/billing/util/callcontext/TestCallContext.java
+++ b/util/src/test/java/org/killbill/billing/util/callcontext/TestCallContext.java
@@ -30,6 +30,7 @@ public class TestCallContext implements CallContext {
private final DateTime updatedDate;
private final DateTime createdDate;
private final UUID userToken;
+ private final UUID accountId;
private final UUID tenantId;
public TestCallContext(final String userName) {
@@ -41,6 +42,7 @@ public class TestCallContext implements CallContext {
this.createdDate = utcNow;
this.updatedDate = utcNow;
this.userToken = context.getUserToken();
+ this.accountId = context.getAccountId();
this.tenantId = context.getTenantId();
}
@@ -49,6 +51,7 @@ public class TestCallContext implements CallContext {
this.createdDate = createdDate;
this.updatedDate = updatedDate;
this.userToken = UUID.randomUUID();
+ this.accountId = UUID.randomUUID();
this.tenantId = UUID.randomUUID();
}
@@ -93,6 +96,11 @@ public class TestCallContext implements CallContext {
}
@Override
+ public UUID getAccountId() {
+ return accountId;
+ }
+
+ @Override
public UUID getTenantId() {
return tenantId;
}
diff --git a/util/src/test/java/org/killbill/billing/util/callcontext/TestDefaultCallContext.java b/util/src/test/java/org/killbill/billing/util/callcontext/TestDefaultCallContext.java
index b5866d2..d6c53cd 100644
--- a/util/src/test/java/org/killbill/billing/util/callcontext/TestDefaultCallContext.java
+++ b/util/src/test/java/org/killbill/billing/util/callcontext/TestDefaultCallContext.java
@@ -28,13 +28,14 @@ public class TestDefaultCallContext extends UtilTestSuiteNoDB {
@Test(groups = "fast")
public void testGetters() throws Exception {
+ final UUID accountId = UUID.randomUUID();
final UUID tenantId = UUID.randomUUID();
final String userName = UUID.randomUUID().toString();
final DateTime createdDate = clock.getUTCNow();
final String reasonCode = UUID.randomUUID().toString();
final String comment = UUID.randomUUID().toString();
final UUID userToken = UUID.randomUUID();
- final DefaultCallContext callContext = new DefaultCallContext(tenantId, userName, createdDate, reasonCode, comment, userToken);
+ final DefaultCallContext callContext = new DefaultCallContext(accountId, tenantId, userName, createdDate, reasonCode, comment, userToken);
Assert.assertEquals(callContext.getTenantId(), tenantId);
Assert.assertEquals(callContext.getCreatedDate(), createdDate);
@@ -49,6 +50,7 @@ public class TestDefaultCallContext extends UtilTestSuiteNoDB {
@Test(groups = "fast")
public void testEquals() throws Exception {
+ final UUID accountId = UUID.randomUUID();
final UUID tenantId = UUID.randomUUID();
final String userName = UUID.randomUUID().toString();
final DateTime createdDate = clock.getUTCNow();
@@ -56,13 +58,13 @@ public class TestDefaultCallContext extends UtilTestSuiteNoDB {
final String comment = UUID.randomUUID().toString();
final UUID userToken = UUID.randomUUID();
- final DefaultCallContext callContext = new DefaultCallContext(tenantId, userName, createdDate, reasonCode, comment, userToken);
+ final DefaultCallContext callContext = new DefaultCallContext(accountId, tenantId, userName, createdDate, reasonCode, comment, userToken);
Assert.assertEquals(callContext, callContext);
- final DefaultCallContext sameCallContext = new DefaultCallContext(tenantId, userName, createdDate, reasonCode, comment, userToken);
+ final DefaultCallContext sameCallContext = new DefaultCallContext(accountId, tenantId, userName, createdDate, reasonCode, comment, userToken);
Assert.assertEquals(sameCallContext, callContext);
- final DefaultCallContext otherCallContext = new DefaultCallContext(tenantId, UUID.randomUUID().toString(), createdDate, reasonCode, comment, userToken);
+ final DefaultCallContext otherCallContext = new DefaultCallContext(accountId, tenantId, UUID.randomUUID().toString(), createdDate, reasonCode, comment, userToken);
Assert.assertNotEquals(otherCallContext, callContext);
}
}