/** * This call is used to update an existing tenant * * @param id UUID id of the existing tenant to update * @param data TenantData new data for the existing tenant */ public DefaultTenant(final UUID id, final TenantData data) { this(id, null, null, data.getExternalKey(), data.getApiKey(), data.getApiSecret()); }
public TenantModelDao(final Tenant tenant) { this(tenant.getId(), tenant.getCreatedDate(), tenant.getUpdatedDate(), tenant.getExternalKey(), tenant.getApiKey(), tenant.getApiSecret(), null); }
@Override public void initializeCacheInvalidationCallback(final TenantKey key, final CacheInvalidationCallback cacheInvalidationCallback) { tenantCacheInvalidation.registerCallback(key, cacheInvalidationCallback); }
@Test(groups = "slow") public void testTenant() throws Exception { final TenantData tenantdata = new DefaultTenant(UUID.randomUUID(), clock.getUTCNow(), clock.getUTCNow(), "er44TT-yy4r", "TTR445ee2", "dskjhfs^^54R"); tenantUserApi.createTenant(tenantdata, callContext); final Tenant tenant = tenantUserApi.getTenantByApiKey(tenantdata.getApiKey()); Assert.assertEquals(tenant.getApiKey(), tenantdata.getApiKey()); Assert.assertEquals(tenant.getExternalKey(), tenantdata.getExternalKey()); // The second time, the value is already in the cache so the TenantCacheLoader is not invoked final Tenant tenant2 = tenantUserApi.getTenantByApiKey(tenantdata.getApiKey()); Assert.assertEquals(tenant2.getApiKey(), tenantdata.getApiKey()); Assert.assertEquals(tenant2.getExternalKey(), tenantdata.getExternalKey()); }
@Override public String getTenantOverdueConfig(final InternalTenantContext tenantContext) { final List<String> values = tenantDao.getTenantValueForKey(TenantKey.OVERDUE_CONFIG.toString(), tenantContext); return getUniqueValue(values, "overdue config", tenantContext); }
@Override public boolean apply(final TenantKey input) { return input.isSingleValue() && key.startsWith(input.toString()); } }).orNull() != null;
@Override public boolean apply(final TenantKey input) { return key.startsWith(input.toString()); } }).orNull() != null;
@Override public Tenant getTenantByApiKey(final String key) throws TenantApiException { final TenantModelDao tenant = tenantDao.getTenantByApiKey(key); if (tenant == null) { throw new TenantApiException(ErrorCode.TENANT_DOES_NOT_EXIST_FOR_API_KEY, key); } return new DefaultTenant(tenant); }
@LifecycleHandlerType(LifecycleLevel.INIT_SERVICE) public void initialize() { tenantCacheInvalidation.initialize(); for (TenantKey cacheableKey : DefaultTenantUserApi.CACHED_TENANT_KEY) { tenantCacheInvalidation.registerCallback(cacheableKey, tenantCacheInvalidationCallback); } }
@Override public String getPluginPaymentStateMachineConfig(final String pluginName, final InternalTenantContext tenantContext) { final String pluginConfigKey = TenantKey.PLUGIN_PAYMENT_STATE_MACHINE_ + pluginName; final List<String> values = tenantDao.getTenantValueForKey(pluginConfigKey, tenantContext); return getUniqueValue(values, "payment state machine for plugin " + pluginConfigKey, tenantContext); }
@Override public Tenant compute(final String key, final CacheLoaderArgument cacheLoaderArgument) { try { return tenantApi.getTenantByApiKey(key); } catch (final TenantApiException e) { throw new IllegalStateException("TenantCacheLoader cannot find value for key " + key); } } }
@LifecycleHandlerType(LifecycleLevel.STOP_SERVICE) public void stop() { tenantCacheInvalidation.stop(); } }
@Override public String getTenantConfig(final InternalTenantContext tenantContext) { final List<String> values = tenantDao.getTenantValueForKey(TenantKey.PER_TENANT_CONFIG.toString(), tenantContext); return getUniqueValue(values, "per tenant config", tenantContext); }
@Override public boolean apply(final TenantKey input) { return key.startsWith(input.toString()); } }).orNull();
@Override public Tenant getTenantById(final UUID id) throws TenantApiException { // TODO - API cleanup? final TenantModelDao tenant = tenantDao.getById(id, new InternalTenantContext(null)); if (tenant == null) { throw new TenantApiException(ErrorCode.TENANT_DOES_NOT_EXIST_FOR_ID, id); } return new DefaultTenant(tenant); }
@Override public String getPluginConfig(final String pluginName, final InternalTenantContext tenantContext) { final String pluginConfigKey = TenantKey.PLUGIN_CONFIG_ + pluginName; final List<String> values = tenantDao.getTenantValueForKey(pluginConfigKey, tenantContext); return getUniqueValue(values, "config for plugin " + pluginConfigKey, tenantContext); }
@Override public String getManualPayInvoiceTemplate(final Locale locale, final InternalTenantContext tenantContext) { final List<String> values = tenantDao.getTenantValueForKey(TenantKey.INVOICE_MP_TEMPLATE.toString(), tenantContext); return getUniqueValue(values, "manual pay invoice template", tenantContext); }
@Override public String getInvoiceTemplate(final Locale locale, final InternalTenantContext tenantContext) { final List<String> values = tenantDao.getTenantValueForKey(TenantKey.INVOICE_TEMPLATE.toString(), tenantContext); return getUniqueValue(values, "invoice template", tenantContext); }
@Override public String getInvoiceTranslation(final Locale locale, final InternalTenantContext tenantContext) { final List<String> values = tenantDao.getTenantValueForKey(LocaleUtils.localeString(locale, TenantKey.INVOICE_TRANSLATION_.toString()), tenantContext); return getUniqueValue(values, "invoice translation", tenantContext); }
@Override public String getCatalogTranslation(final Locale locale, final InternalTenantContext tenantContext) { final List<String> values = tenantDao.getTenantValueForKey(LocaleUtils.localeString(locale, TenantKey.CATALOG_TRANSLATION_.toString()), tenantContext); return getUniqueValue(values, "catalog translation", tenantContext); }