use of alfio.manager.system.ExternalConfiguration in project alf.io by alfio-event.
the class V22_1_14_8__MigrateMailchimp method migrate.
@Override
public void migrate(Context context) throws Exception {
var jdbcTemplate = new JdbcTemplate(new SingleConnectionDataSource(context.getConnection(), true));
Integer enabledCount = jdbcTemplate.queryForObject("select count(*) from plugin_configuration where plugin_id = 'alfio.mailchimp' and conf_name = 'enabled' and conf_value = 'true'", Integer.class);
if (enabledCount == null || enabledCount == 0) {
return;
}
DataSource dataSource = Objects.requireNonNull(jdbcTemplate.getDataSource());
ExtensionRepository extensionRepository = QueryFactory.from(ExtensionRepository.class, "PGSQL", dataSource);
ExtensionLogRepository extensionLogRepository = QueryFactory.from(ExtensionLogRepository.class, "PGSQL", dataSource);
PluginRepository pluginRepository = QueryFactory.from(PluginRepository.class, "PGSQL", dataSource);
ExtensionService extensionService = new ExtensionService(new ScriptingExecutionService(HttpClient.newHttpClient(), null, Executors::newSingleThreadExecutor), extensionRepository, extensionLogRepository, new DataSourceTransactionManager(dataSource), new ExternalConfiguration(), new NamedParameterJdbcTemplate(jdbcTemplate));
extensionService.createOrUpdate(null, null, new Extension("-", "mailchimp", getMailChimpScript(), true));
int extensionId = extensionRepository.getExtensionIdFor("-", "mailchimp");
int apiKeyId = pluginRepository.getConfigurationMetadataIdFor(extensionId, "apiKey", "EVENT");
int listIdId = pluginRepository.getConfigurationMetadataIdFor(extensionId, "listId", "EVENT");
List<ConfValue> confValues = pluginRepository.findAllMailChimpConfigurationValues();
for (ConfValue cv : confValues) {
if (cv.value != null) {
optionally(() -> jdbcTemplate.queryForObject("select org_id from event where id = " + cv.eventId, Integer.class)).ifPresent(orgId -> extensionRepository.insertSettingValue("apiKey".equals(cv.name) ? apiKeyId : listIdId, "-" + orgId + "-" + cv.eventId, cv.value));
}
}
}
use of alfio.manager.system.ExternalConfiguration in project alf.io by alfio-event.
the class BaseTestConfiguration method externalConfiguration.
@Bean
@Profile(Initializer.PROFILE_INTEGRATION_TEST)
public ExternalConfiguration externalConfiguration() {
ExternalConfiguration externalConfiguration = new ExternalConfiguration();
externalConfiguration.setSettings(Map.of(ConfigurationKeys.BASE_URL.name(), "http://localhost:8080"));
return externalConfiguration;
}
Aggregations