diff --git a/configurationapp/.classpath b/configurationapp/.classpath new file mode 100644 index 0000000..3553992 --- /dev/null +++ b/configurationapp/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configurationapp/.project b/configurationapp/.project new file mode 100644 index 0000000..c10084d --- /dev/null +++ b/configurationapp/.project @@ -0,0 +1,23 @@ + + + configurationapp + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/configurationapp/.settings/org.eclipse.core.resources.prefs b/configurationapp/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..cf6931b --- /dev/null +++ b/configurationapp/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/configurationapp/.settings/org.eclipse.jdt.core.prefs b/configurationapp/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..d59e09c --- /dev/null +++ b/configurationapp/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/configurationapp/.settings/org.eclipse.m2e.core.prefs b/configurationapp/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..14b697b --- /dev/null +++ b/configurationapp/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java b/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java index f889558..a2a65a1 100644 --- a/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java +++ b/configurationapp/src/main/java/com/att/dao/configurations/ConfigurationDao.java @@ -1,13 +1,14 @@ package com.att.dao.configurations; -import com.att.data.configurations.ConfigValue; -import org.springframework.stereotype.Service; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.springframework.stereotype.Service; + +import com.att.data.configurations.ConfigValue; + @Service public class ConfigurationDao { private class IdProvider { @@ -34,15 +35,43 @@ public ConfigurationDao() { } public List getConfigurationsForYearMonth(String yearMonth) { + if(isConfigurationKeyExist(yearMonth)){ + return currentConfigurations.get(yearMonth); + } return new ArrayList<>(); } public void addConfiguration(String yearMonth, ConfigValue value) { int newId = idProvider.getNextId(); - + value.setConfigId(newId); + if(isConfigurationKeyExist(yearMonth)){ + List values= currentConfigurations.get(yearMonth); + values.add(value); + currentConfigurations.put(yearMonth, values); + }else{ + List values = new ArrayList<>(); + values.add(value); + currentConfigurations.put(yearMonth, values); + } } public void removeAllConfigurationsForYearMonth(String yearMonth) { - + if(isConfigurationKeyExist(yearMonth)){ + currentConfigurations.remove(yearMonth); + }else{ + throw new RuntimeException("Configuration does not exist"); + } + + } + + public void removeSelecteConfigurationForYearMonth(String yearMonth, int configId){ + if(isConfigurationKeyExist(yearMonth)){ + List values = currentConfigurations.get(yearMonth); + values.removeIf(value -> value.getConfigId() == configId); + } + } + + private boolean isConfigurationKeyExist(String key){ + return currentConfigurations.containsKey(key); } } diff --git a/configurationapp/src/main/java/com/att/data/configurations/ConfigValue.java b/configurationapp/src/main/java/com/att/data/configurations/ConfigValue.java index 55339a3..5b2d637 100644 --- a/configurationapp/src/main/java/com/att/data/configurations/ConfigValue.java +++ b/configurationapp/src/main/java/com/att/data/configurations/ConfigValue.java @@ -1,9 +1,13 @@ package com.att.data.configurations; +import javax.validation.constraints.NotNull; + /** * Data Model */ public class ConfigValue { + + @NotNull(message = "config name must not be null") private String configName; private int configId; diff --git a/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java b/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java index 995402a..3ccfe04 100644 --- a/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java +++ b/configurationapp/src/main/java/com/att/web/configuarations/ConfigurationController.java @@ -1,17 +1,29 @@ package com.att.web.configuarations; -import com.att.dao.configurations.ConfigurationDao; -import com.att.data.configurations.ConfigValue; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - import java.util.ArrayList; import java.util.List; +import javax.validation.Valid; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import com.att.dao.configurations.ConfigurationDao; +import com.att.data.configurations.ConfigValue; + @RestController @RequestMapping(value="/configuration") public class ConfigurationController { - + + private static Logger logger = LoggerFactory.getLogger(ConfigurationController.class); private ConfigurationDao dao; @Autowired @@ -19,27 +31,47 @@ public ConfigurationController(ConfigurationDao dao) { this.dao = dao; } - @RequestMapping(value="/{yearMonthNumber}", method=RequestMethod.GET) + @RequestMapping(value="/get/{yearMonthNumber}", method=RequestMethod.GET) @ResponseBody public List getConfigurationsForYearMonth( @PathVariable("yearMonthNumber") String yearMonth) { - + + if(yearMonth != null && !yearMonth.isEmpty()){ + return dao.getConfigurationsForYearMonth(yearMonth); + } + return new ArrayList<>(); } - @RequestMapping(value="/{yearMonthNumber}", method=RequestMethod.DELETE) + @RequestMapping(value="/delete/{yearMonthNumber}", method=RequestMethod.DELETE) public void deleteConfigurationsForYearMonth(@PathVariable("yearMonthNumber") String yearMonth) { try { - + if(yearMonth != null && !yearMonth.isEmpty()){ + dao.removeAllConfigurationsForYearMonth(yearMonth); + } } catch (Exception ex) { - + logger.error(ex.getMessage()); } } + + + @RequestMapping(value="/delete/{yearMonthNumber}/{configId}", method=RequestMethod.DELETE) + public void deleteSelectedConfigurationsForYearMonth(@PathVariable("yearMonthNumber") String yearMonth, + @PathVariable("configId") Integer configurationId) { + + if(yearMonth != null && !yearMonth.isEmpty() && configurationId != null){ + dao.removeSelecteConfigurationForYearMonth(yearMonth,configurationId); + + } + } - @RequestMapping(value="/{yearMonthNumber}", method={ RequestMethod.POST, RequestMethod.PUT }) + @RequestMapping(value="/add/{yearMonthNumber}", method={RequestMethod.POST}, consumes=MediaType.APPLICATION_JSON_VALUE) public void addConfigurationForYearMonth( @PathVariable("yearMonthNumber") String yearMonth, - @RequestBody ConfigValue value) { + @Valid @RequestBody ConfigValue value) { + if(yearMonth != null && !yearMonth.isEmpty()){ + dao.addConfiguration(yearMonth, value); + } } } diff --git a/configurationapp/src/main/resources/static/index.html b/configurationapp/src/main/resources/static/index.html index 7cd14ba..d1ad925 100644 --- a/configurationapp/src/main/resources/static/index.html +++ b/configurationapp/src/main/resources/static/index.html @@ -2,7 +2,7 @@ Configuration App - + @@ -20,6 +20,7 @@

Welcome To The Configuration App

+
@@ -27,6 +28,7 @@

Welcome To The Configuration App

+ @@ -36,12 +38,122 @@

Welcome To The Configuration App

+
- + \ No newline at end of file diff --git a/configurationapp/src/main/resources/static/js/app.js b/configurationapp/src/main/resources/static/js/app.js index 2d4b945..afdd08b 100644 --- a/configurationapp/src/main/resources/static/js/app.js +++ b/configurationapp/src/main/resources/static/js/app.js @@ -11,15 +11,24 @@ }) }; + + + App.prototype.init = function() { - $('#configTable').DataTable({ + $('#configTable').DataTable({ + "columnDefs": [{ + "targets": 2, + "data": null, + "defaultContent": "" + }], scrollY: 300, paging: false, sorting: false, searching: false, info: false - }); + }); + }; - window.app = new App; + window.app = new App; })($); \ No newline at end of file diff --git a/configurationapp/target/classes/application.properties b/configurationapp/target/classes/application.properties new file mode 100644 index 0000000..6c77a8e --- /dev/null +++ b/configurationapp/target/classes/application.properties @@ -0,0 +1,6 @@ +server.port=9000 +spring.mvc.favicon.enabled=false + +logging.level.root=WARN +logging.level.org.springframework.web=DEBUG +logging.level.org.hibernate=ERROR \ No newline at end of file diff --git a/configurationapp/target/classes/com/att/ConfigurationApp.class b/configurationapp/target/classes/com/att/ConfigurationApp.class new file mode 100644 index 0000000..3419bb8 Binary files /dev/null and b/configurationapp/target/classes/com/att/ConfigurationApp.class differ diff --git a/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao$IdProvider.class b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao$IdProvider.class new file mode 100644 index 0000000..08d0772 Binary files /dev/null and b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao$IdProvider.class differ diff --git a/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao.class b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao.class new file mode 100644 index 0000000..1a3356f Binary files /dev/null and b/configurationapp/target/classes/com/att/dao/configurations/ConfigurationDao.class differ diff --git a/configurationapp/target/classes/com/att/data/configurations/ConfigValue.class b/configurationapp/target/classes/com/att/data/configurations/ConfigValue.class new file mode 100644 index 0000000..1a735c0 Binary files /dev/null and b/configurationapp/target/classes/com/att/data/configurations/ConfigValue.class differ diff --git a/configurationapp/target/classes/com/att/web/configuarations/ConfigurationController.class b/configurationapp/target/classes/com/att/web/configuarations/ConfigurationController.class new file mode 100644 index 0000000..5f709bc Binary files /dev/null and b/configurationapp/target/classes/com/att/web/configuarations/ConfigurationController.class differ diff --git a/configurationapp/target/classes/meta-inf/maven/com.att/configurationapp/pom.properties b/configurationapp/target/classes/meta-inf/maven/com.att/configurationapp/pom.properties new file mode 100644 index 0000000..dd55f4d --- /dev/null +++ b/configurationapp/target/classes/meta-inf/maven/com.att/configurationapp/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Tue Oct 02 22:12:56 IST 2018 +version=0.0.1-SNAPSHOT +groupId=com.att +m2e.projectName=configurationapp +m2e.projectLocation=E\:\\JAVA\\configurationapp +artifactId=configurationapp diff --git a/configurationapp/target/classes/meta-inf/maven/com.att/configurationapp/pom.xml b/configurationapp/target/classes/meta-inf/maven/com.att/configurationapp/pom.xml new file mode 100644 index 0000000..78931d3 --- /dev/null +++ b/configurationapp/target/classes/meta-inf/maven/com.att/configurationapp/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + com.att + configurationapp + 0.0.1-SNAPSHOT + jar + + configurationapp + + + + org.springframework.boot + spring-boot-starter-parent + 2.0.4.RELEASE + + + + UTF-8 + UTF-8 + 1.8 + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-devtools + runtime + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + configurationapp + + + + diff --git a/configurationapp/target/classes/static/css/main.css b/configurationapp/target/classes/static/css/main.css new file mode 100644 index 0000000..d03098f --- /dev/null +++ b/configurationapp/target/classes/static/css/main.css @@ -0,0 +1,11 @@ +.controls { + +} + +.config-table-wrapper { + +} + +.content { + +} \ No newline at end of file diff --git a/configurationapp/target/classes/static/index.html b/configurationapp/target/classes/static/index.html new file mode 100644 index 0000000..d1ad925 --- /dev/null +++ b/configurationapp/target/classes/static/index.html @@ -0,0 +1,159 @@ + + + + Configuration App + + + + + + +

Welcome To The Configuration App

+
+
+ + +
+
+
Configuration Id Configuration Name
+ + + + + + + + + + +
Configuration IdConfiguration Name
+
+
+ + +
+ + + + \ No newline at end of file diff --git a/configurationapp/target/classes/static/js/app.js b/configurationapp/target/classes/static/js/app.js new file mode 100644 index 0000000..afdd08b --- /dev/null +++ b/configurationapp/target/classes/static/js/app.js @@ -0,0 +1,34 @@ +(function() { + function App() { + + } + + App.prototype.getData = function() { + $.ajax('',{ + + }).then(function(data) { + + }) + }; + + + + + App.prototype.init = function() { + $('#configTable').DataTable({ + "columnDefs": [{ + "targets": 2, + "data": null, + "defaultContent": "" + }], + scrollY: 300, + paging: false, + sorting: false, + searching: false, + info: false + }); + + }; + + window.app = new App; +})($); \ No newline at end of file diff --git a/configurationapp/target/configurationapp.jar b/configurationapp/target/configurationapp.jar new file mode 100644 index 0000000..3139210 Binary files /dev/null and b/configurationapp/target/configurationapp.jar differ diff --git a/configurationapp/target/configurationapp.jar.original b/configurationapp/target/configurationapp.jar.original new file mode 100644 index 0000000..2e640a8 Binary files /dev/null and b/configurationapp/target/configurationapp.jar.original differ diff --git a/configurationapp/target/maven-archiver/pom.properties b/configurationapp/target/maven-archiver/pom.properties new file mode 100644 index 0000000..69473e5 --- /dev/null +++ b/configurationapp/target/maven-archiver/pom.properties @@ -0,0 +1,4 @@ +#Created by Apache Maven 3.3.3 +version=0.0.1-SNAPSHOT +groupId=com.att +artifactId=configurationapp diff --git a/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..1935bfc --- /dev/null +++ b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,5 @@ +com\att\dao\configurations\ConfigurationDao$IdProvider.class +com\att\web\configuarations\ConfigurationController.class +com\att\ConfigurationApp.class +com\att\dao\configurations\ConfigurationDao.class +com\att\data\configurations\ConfigValue.class diff --git a/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..6732418 --- /dev/null +++ b/configurationapp/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,4 @@ +E:\JAVA\configurationapp\src\main\java\com\att\dao\configurations\ConfigurationDao.java +E:\JAVA\configurationapp\src\main\java\com\att\data\configurations\ConfigValue.java +E:\JAVA\configurationapp\src\main\java\com\att\ConfigurationApp.java +E:\JAVA\configurationapp\src\main\java\com\att\web\configuarations\ConfigurationController.java