use of alfio.model.system.ConfigurationKeys.GOOGLE_ANALYTICS_KEY in project alf.io by alfio-event.
the class DynamicResourcesController method getGoogleAnalyticsScript.
@RequestMapping("/resources/js/google-analytics")
public void getGoogleAnalyticsScript(HttpSession session, HttpServletResponse response, @RequestParam("e") Integer eventId) throws IOException {
response.setContentType("application/javascript");
Optional<Event> ev = Optional.ofNullable(eventId).flatMap(id -> Optional.ofNullable(eventRepository.findById(id)));
ConfigurationPathKey pathKey = ev.map(e -> Configuration.from(e.getOrganizationId(), e.getId(), GOOGLE_ANALYTICS_KEY)).orElseGet(() -> Configuration.getSystemConfiguration(GOOGLE_ANALYTICS_KEY));
final Optional<String> id = configurationManager.getStringConfigValue(pathKey);
final String script;
ConfigurationPathKey anonymousPathKey = ev.map(e -> Configuration.from(e.getOrganizationId(), e.getId(), GOOGLE_ANALYTICS_ANONYMOUS_MODE)).orElseGet(() -> Configuration.getSystemConfiguration(GOOGLE_ANALYTICS_ANONYMOUS_MODE));
if (id.isPresent() && configurationManager.getBooleanConfigValue(anonymousPathKey, true)) {
String trackingId = Optional.ofNullable(StringUtils.trimToNull((String) session.getAttribute("GA_TRACKING_ID"))).orElseGet(() -> UUID.randomUUID().toString());
Map<String, Object> model = new HashMap<>();
model.put("clientId", trackingId);
model.put("account", id.get());
script = templateManager.renderTemplate(TemplateResource.GOOGLE_ANALYTICS, model, Locale.ENGLISH);
} else {
script = id.map(x -> String.format(GOOGLE_ANALYTICS_SCRIPT, x)).orElse(EMPTY);
}
response.getWriter().write(script);
}
Aggregations