package de.asideas.crowdsource.controller; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController public class ConfigController { private String allowedEmailDomain; private List<String> emailBlacklistPatterns; @Autowired public ConfigController( @Value("${de.asideas.crowdsource.content.allowed.email.domain}") String allowedEmailDomain, @Value("#{'${de.asideas.crowdsource.content.email.blacklist.patterns}'.split(',')}") List<String> emailBlacklistPatterns) { this.allowedEmailDomain = allowedEmailDomain; this.emailBlacklistPatterns = emailBlacklistPatterns; } private ObjectMapper objectMapper = new ObjectMapper(); @RequestMapping("/config.js") public String config() throws JsonProcessingException { return "angular.module('crowdsource')" + ".value('emailDomain', '@" + allowedEmailDomain + "')" + ".value('emailBlacklistPatterns', " + objectMapper.writeValueAsString(emailBlacklistPatterns) + ")"; } }