diff --git a/avni-server-api/src/main/java/org/avni/server/web/ConfigurationController.java b/avni-server-api/src/main/java/org/avni/server/web/ConfigurationController.java new file mode 100644 index 000000000..8c5222760 --- /dev/null +++ b/avni-server-api/src/main/java/org/avni/server/web/ConfigurationController.java @@ -0,0 +1,25 @@ +package org.avni.server.web; + +import org.avni.server.web.util.Configuration; +import org.avni.server.web.util.ConfigurationResponse; +import org.avni.server.web.util.ReportingSystem; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +public class ConfigurationController { + @Autowired + private Configuration configuration; + + @GetMapping("/Config") + public ResponseEntity getReportConfig() { + ConfigurationResponse configurationResponse = new ConfigurationResponse(); + List reportingSystems = configuration.getReportingSystems(); + configurationResponse.setReportingSystems(reportingSystems); + return ResponseEntity.ok(configurationResponse); + } +} diff --git a/avni-server-api/src/main/java/org/avni/server/web/util/Configuration.java b/avni-server-api/src/main/java/org/avni/server/web/util/Configuration.java new file mode 100644 index 000000000..4c80e951f --- /dev/null +++ b/avni-server-api/src/main/java/org/avni/server/web/util/Configuration.java @@ -0,0 +1,19 @@ +package org.avni.server.web.util; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; +import java.util.List; + +@Component +@ConfigurationProperties(prefix = "avni") +public class Configuration { + private List reportingSystems; + + public List getReportingSystems() { + return reportingSystems; + } + + public void setReportingSystems(List reportingSystems) { + this.reportingSystems = reportingSystems; + } +} \ No newline at end of file diff --git a/avni-server-api/src/main/java/org/avni/server/web/util/ConfigurationResponse.java b/avni-server-api/src/main/java/org/avni/server/web/util/ConfigurationResponse.java new file mode 100644 index 000000000..3d2ddf530 --- /dev/null +++ b/avni-server-api/src/main/java/org/avni/server/web/util/ConfigurationResponse.java @@ -0,0 +1,17 @@ +package org.avni.server.web.util; + +import java.util.List; +import java.util.stream.Collectors; + +public class ConfigurationResponse { + private List reportingSystems; + + public List getReportingSystems() { + return reportingSystems; + } + + public void setReportingSystems(List reportingSystems) { + List filteredReportingSystems = reportingSystems.stream().filter(reportingSystem -> !(reportingSystem.getName().equals("") || reportingSystem.getUrl().equals("")) ).collect(Collectors.toList()); + this.reportingSystems = filteredReportingSystems; + } +} diff --git a/avni-server-api/src/main/java/org/avni/server/web/util/ReportingSystem.java b/avni-server-api/src/main/java/org/avni/server/web/util/ReportingSystem.java new file mode 100644 index 000000000..233bdb7e5 --- /dev/null +++ b/avni-server-api/src/main/java/org/avni/server/web/util/ReportingSystem.java @@ -0,0 +1,23 @@ +package org.avni.server.web.util; + +public class ReportingSystem { + private String name; + private String url; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + +} diff --git a/avni-server-api/src/main/resources/application.properties b/avni-server-api/src/main/resources/application.properties index ee09c28db..145d55ba7 100644 --- a/avni-server-api/src/main/resources/application.properties +++ b/avni-server-api/src/main/resources/application.properties @@ -146,3 +146,11 @@ avni.enhancedValidation.enabled=${AVNI_ENHANCED_VALIDATION:true} avni.exception.in.response=${AVNI_SEND_EXCEPTION_IN_RESPONSE:true} logging.level.org.hibernate.SQL=OFF + +#reporting +avni.reportingSystems[0].name=${AVNI_REPORTING_SYSTEM_0_NAME:} +avni.reportingSystems[0].url=${AVNI_REPORTING_SYSTEM_0_URL:} +avni.reportingSystems[1].name=${AVNI_REPORTING_SYSTEM_1_NAME:} +avni.reportingSystems[1].url=${AVNI_REPORTING_SYSTEM_1_URL:} +avni.reportingSystems[2].name=${AVNI_REPORTING_SYSTEM_2_NAME:} +avni.reportingSystems[2].url=${AVNI_REPORTING_SYSTEM_2_URL:} \ No newline at end of file