diff --git a/db.mv.db b/db.mv.db
deleted file mode 100644
index fd9bf78..0000000
Binary files a/db.mv.db and /dev/null differ
diff --git a/db/test.mv.db b/db/test.mv.db
deleted file mode 100644
index a6b898e..0000000
Binary files a/db/test.mv.db and /dev/null differ
diff --git a/db/test.trace.db b/db/test.trace.db
deleted file mode 100644
index 2537d8b..0000000
--- a/db/test.trace.db
+++ /dev/null
@@ -1,484 +0,0 @@
-2018-04-25 05:15:39 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column "ID" not found; SQL statement:
-UPDATE ENSINO.SERIE SET NOME = 'Primeiro ano - 25/30' WHERE ID = 163 [42122-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
- at org.h2.expression.Comparison.optimize(Comparison.java:178)
- at org.h2.command.dml.Update.prepare(Update.java:185)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:15:39 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column "ID" not found; SQL statement:
-UPDATE ENSINO.SERIE SET NOME = 'Quinto ano - 25/40' WHERE ID = 164 [42122-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
- at org.h2.expression.Comparison.optimize(Comparison.java:178)
- at org.h2.command.dml.Update.prepare(Update.java:185)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:15:39 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column count does not match; SQL statement:
-INSERT into ENSINO.SERIE values ("Segundo ano - 28/30") [21002-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.command.dml.Insert.prepare(Insert.java:265)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:15:39 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column count does not match; SQL statement:
-INSERT into ENSINO.SERIE values ("Terceiro ano - 27/35") [21002-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.command.dml.Insert.prepare(Insert.java:265)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:15:39 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column count does not match; SQL statement:
-INSERT into ENSINO.SERIE values ("Quarto ano - 18/35") [21002-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.message.DbException.get(DbException.java:144)
- at org.h2.command.dml.Insert.prepare(Insert.java:265)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:16:35 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column "ID" not found; SQL statement:
-UPDATE ENSINO.SERIE SET NOME = 'Primeiro ano - 25/30' WHERE ID = 163 [42122-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
- at org.h2.expression.Comparison.optimize(Comparison.java:178)
- at org.h2.command.dml.Update.prepare(Update.java:185)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:16:35 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column "ID" not found; SQL statement:
-UPDATE ENSINO.SERIE SET NOME = 'Quinto ano - 25/40' WHERE ID = 164 [42122-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
- at org.h2.expression.Comparison.optimize(Comparison.java:178)
- at org.h2.command.dml.Update.prepare(Update.java:185)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:16:35 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column "Segundo ano - 28/30" not found; SQL statement:
-INSERT into ENSINO.SERIE values (165, "Segundo ano - 28/30") [42122-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
- at org.h2.command.dml.Insert.prepare(Insert.java:270)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:16:35 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column "Terceiro ano - 27/35" not found; SQL statement:
-INSERT into ENSINO.SERIE values (166, "Terceiro ano - 27/35") [42122-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
- at org.h2.command.dml.Insert.prepare(Insert.java:270)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
-2018-04-25 05:16:35 jdbc[13]: exception
-org.h2.jdbc.JdbcSQLException: Column "Quarto ano - 18/35" not found; SQL statement:
-INSERT into ENSINO.SERIE values (167, "Quarto ano - 18/35") [42122-196]
- at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
- at org.h2.message.DbException.get(DbException.java:179)
- at org.h2.message.DbException.get(DbException.java:155)
- at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
- at org.h2.command.dml.Insert.prepare(Insert.java:270)
- at org.h2.command.Parser.prepareCommand(Parser.java:263)
- at org.h2.engine.Session.prepareLocal(Session.java:578)
- at org.h2.engine.Session.prepareCommand(Session.java:519)
- at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
- at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:176)
- at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:164)
- at org.h2.server.web.WebApp.getResult(WebApp.java:1380)
- at org.h2.server.web.WebApp.query(WebApp.java:1053)
- at org.h2.server.web.WebApp.query(WebApp.java:1029)
- at org.h2.server.web.WebApp.process(WebApp.java:222)
- at org.h2.server.web.WebApp.processRequest(WebApp.java:169)
- at org.h2.server.web.WebServlet.doGet(WebServlet.java:125)
- at org.h2.server.web.WebServlet.doPost(WebServlet.java:162)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
- at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
- at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
- at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
- at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
- at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
- at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
- at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
- at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
- at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
- at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
- at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
- at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
- at java.lang.Thread.run(Thread.java:748)
diff --git a/pom.xml b/pom.xml
index 7ce0d29..18a4c0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,29 +1,21 @@
-
4.0.0
- br.com.imd.cadeduc
- cadeduc
+ br.com.imd.cadwork
+ cadwork
0.0.1-SNAPSHOT
jar
- cadeducapi
- API de geocalização de escolas estaduais
-
org.springframework.boot
spring-boot-starter-parent
- 2.0.0.RELEASE
+ 2.0.2.RELEASE
-
- UTF-8
- UTF-8
- 1.8
-
-
@@ -38,13 +30,13 @@
-
-
-
- com.google.code.gson
- gson
-
-
+
+
+
+ com.google.code.gson
+ gson
+
+
@@ -69,13 +61,13 @@
io.springfox
springfox-swagger2
- 2.7.0
+ 2.8.0
io.springfox
springfox-swagger-ui
- 2.7.0
+ 2.8.0
@@ -83,17 +75,47 @@
org.springframework.boot
spring-boot-starter-thymeleaf
+
+
+ se.walkercrou
+ google-places-api-java
+ 2.1.2
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+ 1.5.3.RELEASE
+
- org.springframework.boot
- spring-boot-maven-plugin
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+
+ false
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
-
diff --git a/src/main/java/br/com/imd/cadeduc/CadeducapiApplication.java b/src/main/java/br/com/imd/cadeduc/CadeducapiApplication.java
deleted file mode 100644
index 9486edc..0000000
--- a/src/main/java/br/com/imd/cadeduc/CadeducapiApplication.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package br.com.imd.cadeduc;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-@EnableSwagger2
-@SpringBootApplication
-public class CadeducapiApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(CadeducapiApplication.class, args);
- }
-}
-
diff --git a/src/main/java/br/com/imd/cadeduc/core/config/DetalheError.java b/src/main/java/br/com/imd/cadeduc/core/config/DetalheError.java
deleted file mode 100644
index c68209f..0000000
--- a/src/main/java/br/com/imd/cadeduc/core/config/DetalheError.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package br.com.imd.cadeduc.core.config;
-
-import org.springframework.http.HttpStatus;
-
-public class DetalheError {
-
- private String titulo;
- private HttpStatus status;
- private Long timestamp;
- private String mensagem;
-
- public String getTitulo() {
- return titulo;
- }
-
- public void setTitulo(String titulo) {
- this.titulo = titulo;
- }
-
- public HttpStatus getStatus() {
- return status;
- }
-
- public void setStatus(HttpStatus status) {
- this.status = status;
- }
-
- public Long getTimestamp() {
- return timestamp;
- }
-
- public void setTimestamp(Long timestamp) {
- this.timestamp = timestamp;
- }
-
- public String getMensagem() {
- return mensagem;
- }
-
- public void setMensagem(String mensagem) {
- this.mensagem = mensagem;
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/core/dao/GerericDomainException.java b/src/main/java/br/com/imd/cadeduc/core/dao/GerericDomainException.java
deleted file mode 100644
index 43cc1b2..0000000
--- a/src/main/java/br/com/imd/cadeduc/core/dao/GerericDomainException.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package br.com.imd.cadeduc.core.dao;
-
-public class GerericDomainException extends Exception {
-
- private static final long serialVersionUID = 1L;
-
- public GerericDomainException(String message) {
- super(message);
- }
-}
diff --git a/src/main/java/br/com/imd/cadeduc/core/exception/ManipuladorException.java b/src/main/java/br/com/imd/cadeduc/core/exception/ManipuladorException.java
deleted file mode 100644
index 7b00e51..0000000
--- a/src/main/java/br/com/imd/cadeduc/core/exception/ManipuladorException.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package br.com.imd.cadeduc.core.exception;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-
-import br.com.imd.cadeduc.core.config.DetalheError;
-import br.com.imd.cadeduc.core.config.ResponseMessagesConfig;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.core.service.exception.ResourceConflictException;
-import br.com.imd.cadeduc.core.service.exception.ResourceEmptyException;
-import br.com.imd.cadeduc.core.service.exception.ResourceNotFoundException;
-
-@ControllerAdvice
-public class ManipuladorException {
-
- @ExceptionHandler(ResourceEmptyException.class)
- public ResponseEntity manipuladorResourceEmptyException(GenericServiceException e,
- HttpServletRequest request) {
-
- DetalheError error = gerarMensagemError(HttpStatus.NOT_ACCEPTABLE, e);
-
- return ResponseEntity.status(HttpStatus.NOT_ACCEPTABLE).body(error);
- }
-
- @ExceptionHandler(ResourceNotFoundException.class)
- public ResponseEntity manipuladorResourceNotFoundException(GenericServiceException e,
- HttpServletRequest request) {
-
- DetalheError error = gerarMensagemError(HttpStatus.NOT_FOUND, e);
-
- return ResponseEntity.status(HttpStatus.NOT_FOUND).body(error);
- }
-
- @ExceptionHandler(ResourceConflictException.class)
- public ResponseEntity manipuladorResourceConflictException(GenericServiceException e,
- HttpServletRequest request) {
-
- DetalheError error = gerarMensagemError(HttpStatus.CONFLICT, e);
-
- return ResponseEntity.status(HttpStatus.CONFLICT).body(error);
- }
-
- private DetalheError gerarMensagemError(HttpStatus status, GenericServiceException e) {
- DetalheError error = new DetalheError();
-
- error.setStatus(status);
- error.setTitulo(ResponseMessagesConfig.getInstance().getMensagens()
- .get(status.ordinal()).getMessage());
-
- error.setTimestamp(System.currentTimeMillis());
- error.setMensagem(e.getMessage().replaceAll("\"", ""));
-
- return error;
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/core/service/GenericService.java b/src/main/java/br/com/imd/cadeduc/core/service/GenericService.java
deleted file mode 100644
index a0f5382..0000000
--- a/src/main/java/br/com/imd/cadeduc/core/service/GenericService.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package br.com.imd.cadeduc.core.service;
-
-import java.util.List;
-import java.util.Optional;
-
-import org.springframework.stereotype.Service;
-import org.springframework.validation.BindingResult;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.core.service.exception.ResourceEmptyException;
-import br.com.imd.cadeduc.core.service.exception.ResourceNotFoundException;
-import br.com.imd.cadeduc.util.ValidatorUtil;
-
-@Service
-public abstract class GenericService {
-
- protected GenericDAO dao;
-
- protected List listar() throws GenericServiceException {
- List entidades = dao.findAll();
-
- if (entidades.isEmpty()) {
- throw new ResourceNotFoundException();
- }
-
- return entidades;
- }
-
- protected void salvar(T t, BindingResult resultado) throws GenericServiceException {
-
- if (resultado.hasErrors()) {
- throw new ResourceEmptyException(ValidatorUtil.gerarErrorsInJson(resultado.getAllErrors()));
- }
- verificaExistencia(t);
- try {
-
- dao.save(t);
-
- } catch (Exception e) {
- throw new GenericServiceException(e.getMessage());
- }
-
- }
-
- protected Optional buscar(Long id) throws GenericServiceException {
-
- Optional entidade = dao.findById(id);
-
- if (!entidade.isPresent()) {
- throw new ResourceNotFoundException();
- }
- return entidade;
- }
-
- protected abstract void setDao(GenericDAO dao);
- protected abstract void verificaExistencia(T t) throws GenericServiceException;
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/core/service/exception/GenericServiceException.java b/src/main/java/br/com/imd/cadeduc/core/service/exception/GenericServiceException.java
deleted file mode 100644
index fd5899a..0000000
--- a/src/main/java/br/com/imd/cadeduc/core/service/exception/GenericServiceException.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package br.com.imd.cadeduc.core.service.exception;
-
-public class GenericServiceException extends Exception {
- private static final long serialVersionUID = 1L;
-
- public GenericServiceException(String message) {
- super(message);
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/dao/EtapaEnsinoDAO.java b/src/main/java/br/com/imd/cadeduc/ensino/dao/EtapaEnsinoDAO.java
deleted file mode 100644
index 6646cec..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/dao/EtapaEnsinoDAO.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package br.com.imd.cadeduc.ensino.dao;
-
-import java.util.Optional;
-
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.ensino.domain.EtapaEnsino;
-
-@Repository
-public interface EtapaEnsinoDAO extends GenericDAO {
-
- public Optional findEtapaEnsinoByNome(@Param("nome") String nome);
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/dao/SerieDAO.java b/src/main/java/br/com/imd/cadeduc/ensino/dao/SerieDAO.java
deleted file mode 100644
index 089e071..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/dao/SerieDAO.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package br.com.imd.cadeduc.ensino.dao;
-
-import java.util.Optional;
-
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.ensino.domain.Serie;
-
-@Repository
-public interface SerieDAO extends GenericDAO {
-
- Optional findSerieByNome(@Param("nome") String nome);
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/domain/EtapaEnsino.java b/src/main/java/br/com/imd/cadeduc/ensino/domain/EtapaEnsino.java
deleted file mode 100644
index 9bb2c30..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/domain/EtapaEnsino.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package br.com.imd.cadeduc.ensino.domain;
-
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * Classe que define o modelo etapa de ensino
- *
- * @author Miguel
- * @version 0.2
- *
- */
-
-@Entity
-@Table(name = "etapa_ensino", schema = "ensino")
-@ApiModel
-public class EtapaEnsino {
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id_etapa_ensino")
- @ApiModelProperty(hidden = true, notes = "ID gerado automaticamente pela base de dados")
- private Long id;
-
- @NotNull
- @ApiModelProperty(notes = "Nome da Etapa de Ensino", required = true)
- private String nome;
-
- @NotNull
- @Column(name = "vagas_disponiveis")
- @ApiModelProperty(notes = "Quantidade de vagas disponÃveis", required = true)
- private int vagasDisponiveis;
-
- @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
- @ApiModelProperty(notes = "séries da etapa de ensino")
- private List series;
-
- @NotNull
- @Column(name = "tipo_etapa_ensino")
- @Enumerated(EnumType.STRING)
- @ApiModelProperty(notes = "Tipo da etapa de ensino", required = true)
- private TipoEtapaEnsinoEnum tipoEtapaEnsino;
-
- public EtapaEnsino() {
- id = new Long(0);
- }
-
- /**
- * Método para retorno do id de uma instância de Etapa de Ensino
- *
- * @return Long - Valor do id
- */
-
- public Long getId() {
- return id;
- }
-
- /**
- * Altera o valor do id de uma instância de Etapa de Ensino
- *
- * @param id
- * Long - Novo valor do id
- */
-
- public void setId(Long id) {
- this.id = id;
- }
-
- /**
- * Retorna o nome da etapa de ensino
- *
- * @return String - Nome da etapa de ensino
- */
-
- public String getNome() {
- return nome;
- }
-
- /**
- * Altera o nome da etapa de ensino
- *
- * @param nome
- * String - Novo nome da etapa de ensino
- */
-
- public void setNome(String nome) {
- this.nome = nome;
- }
-
- /**
- * Retorna o número de vagas disponÃveis
- *
- * @return int - Número de vagas
- */
- public int getVagasDisponiveis() {
- return vagasDisponiveis;
- }
-
- /**
- * Método que atualiza o número de vagas disponÃveis
- *
- * @param vagasDisponiveis
- * int - Novo número de vagas disponÃveis
- */
-
- public void setVagasDisponiveis(int vagasDisponiveis) {
- this.vagasDisponiveis = vagasDisponiveis;
- }
-
- /**
- * Método para retorno do tipo da etapa de ensino
- *
- * @return TipoEtapaEnsinoEnum - Etapa de ensino
- */
-
- public TipoEtapaEnsinoEnum getTipoEtapaEnsino() {
- return tipoEtapaEnsino;
- }
-
- /**
- * Altera a etapa de ensino da instância
- *
- * @param tipoEtapaEnsino
- * TipoEtapaEnsinoEnum - Etapa de ensino para ser atualizada
- */
-
- public void setTipoEtapaEnsino(TipoEtapaEnsinoEnum tipoEtapaEnsino) {
- this.tipoEtapaEnsino = tipoEtapaEnsino;
- }
-
- /**
- * Método para retorno da lista de séries da etapa de ensino
- *
- * @return List - Retorna a lista de séries atual
- */
-
- public List getSeries() {
- return series;
- }
-
- /**
- * Atualiza a lista de séries
- *
- * @param series
- * List - Lista de séries a ser atualizada
- */
-
- public void setSeries(List series) {
- this.series = series;
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/domain/Serie.java b/src/main/java/br/com/imd/cadeduc/ensino/domain/Serie.java
deleted file mode 100644
index 0c59d6a..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/domain/Serie.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package br.com.imd.cadeduc.ensino.domain;
-
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.ManyToMany;
-import javax.persistence.Table;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import br.com.imd.cadeduc.escola.domain.Escola;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- *
- * Classe que define o modelo de série
- *
- * @author Miguel
- * @version 0.3
- */
-
-@Entity
-@Table(name = "serie", schema = "ensino")
-@ApiModel
-public class Serie {
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id_serie")
- @ApiModelProperty(hidden = true, notes = "ID gerado automaticamente pela base de dados")
- private Long id;
-
- @NotBlank(message = "Campo em branco")
- @NotNull(message = "Campo nulo")
- @Column(name = "nome")
- @ApiModelProperty(notes = "Nome da série", required = true)
- private String nome;
-
- @ManyToMany(mappedBy = "series", cascade = CascadeType.ALL)
- @ApiModelProperty(notes = "Escolas em que a série é disponibilizada")
- private List escolas;
-
- public Serie() {
- id = new Long(0);
- }
-
- /**
- * Método para retorno do id de uma instância de Serie
- *
- * @return Long - Valor do id
- */
-
- public Long getId() {
- return id;
- }
-
- /**
- * Altera o valor do id de uma instância de Serie
- *
- * @param id
- * Long - Novo valor do id
- */
-
- public void setId(Long id) {
- this.id = id;
- }
-
- /**
- * Retorna o nome da série
- *
- * @return String - nome da série
- */
-
- public String getNome() {
- return nome;
- }
-
- /**
- * Modifica o nome da série
- *
- * @param nome
- * String - novo nome da série
- */
- public void setNome(String nome) {
- this.nome = nome;
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/domain/TipoEtapaEnsinoEnum.java b/src/main/java/br/com/imd/cadeduc/ensino/domain/TipoEtapaEnsinoEnum.java
deleted file mode 100644
index 6fba864..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/domain/TipoEtapaEnsinoEnum.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package br.com.imd.cadeduc.ensino.domain;
-
-import io.swagger.annotations.ApiModel;
-
-/**
- *
- * Enumeração dos possÃveis tipos de etapa de ensino
- *
- * @author Miguel
- * @version 0.2
- *
- */
-
-@ApiModel
-public enum TipoEtapaEnsinoEnum {
- /**
- * ENSINO_FUNDAMENTAL - 1
- * ENSINO_MEDIO - 2
- * ENSINO_FUNDAMENTAL_EJA - 3
- * ENSINO_MEDIO_EJA - 4
- */
- ENSINO_FUNDAMENTAL,
- ENSINO_MEDIO,
- ENSINO_FUNDAMENTAL_EJA,
- ENSINO_MEDIO_EJA,
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/resources/EtapaEnsinoResources.java b/src/main/java/br/com/imd/cadeduc/ensino/resources/EtapaEnsinoResources.java
deleted file mode 100644
index b404539..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/resources/EtapaEnsinoResources.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package br.com.imd.cadeduc.ensino.resources;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Optional;
-
-import javax.validation.Valid;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.CrossOrigin;
-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 org.springframework.web.servlet.support.ServletUriComponentsBuilder;
-
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.ensino.domain.EtapaEnsino;
-import br.com.imd.cadeduc.ensino.service.EtapaEnsinoService;
-import io.swagger.annotations.Api;
-
-@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
-@RestController
-@RequestMapping(value = "/etapasEnsino", produces = "application/json")
-@Api(tags = "Etapas de Ensino", description = "Operações pertinentes a etapas de ensino")
-public class EtapaEnsinoResources {
-
- @Autowired
- EtapaEnsinoService etapaEnsinoService;
-
- @RequestMapping(method = RequestMethod.GET)
- public ResponseEntity> listar() throws GenericServiceException {
- return new ResponseEntity<>(etapaEnsinoService.listar(), HttpStatus.OK);
- }
-
- @RequestMapping(method = RequestMethod.POST)
- public ResponseEntity salvar(@Valid @RequestBody EtapaEnsino etapaEnsino, BindingResult resultado) throws GenericServiceException {
-
- etapaEnsinoService.salvar(etapaEnsino, resultado);
-
- URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(etapaEnsino.getId())
- .toUri();
-
- return ResponseEntity.created(uri).build();
-
- }
-
- @RequestMapping(value = "/{id}", method = RequestMethod.GET)
- public @ResponseBody ResponseEntity> buscar(@PathVariable("id") Long id)
- throws GenericServiceException {
- return new ResponseEntity<>(etapaEnsinoService.buscar(id), HttpStatus.OK);
- }
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/resources/SerieResources.java b/src/main/java/br/com/imd/cadeduc/ensino/resources/SerieResources.java
deleted file mode 100644
index 93e7a59..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/resources/SerieResources.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package br.com.imd.cadeduc.ensino.resources;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Optional;
-
-import javax.validation.Valid;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.CrossOrigin;
-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 org.springframework.web.servlet.support.ServletUriComponentsBuilder;
-
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.ensino.domain.Serie;
-import br.com.imd.cadeduc.ensino.service.SerieService;
-import io.swagger.annotations.Api;
-
-@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
-@RestController
-@RequestMapping(value = "/series", produces = "application/json")
-@Api(tags = "Séries", value = "onlinestore", description = "Operações pertinentes a séries")
-public class SerieResources {
-
- @Autowired
- SerieService serieService;
-
- @RequestMapping(method = RequestMethod.GET)
- public ResponseEntity> listar() throws GenericServiceException {
-
- return new ResponseEntity<>(serieService.listar(), HttpStatus.OK);
-
- }
-
- @RequestMapping(method = RequestMethod.POST)
- public ResponseEntity salvar(@Valid @RequestBody Serie serie, BindingResult resultado) throws GenericServiceException {
- serieService.salvar(serie, resultado);
-
- URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(serie.getId()).toUri();
-
- return ResponseEntity.created(uri).build();
- }
-
- @RequestMapping(value = "/{id}", method = RequestMethod.GET)
- public @ResponseBody ResponseEntity> buscar(@PathVariable("id") Long id)
- throws GenericServiceException {
- return new ResponseEntity<>(serieService.buscar(id), HttpStatus.OK);
- }
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/service/EtapaEnsinoService.java b/src/main/java/br/com/imd/cadeduc/ensino/service/EtapaEnsinoService.java
deleted file mode 100644
index c3dcb11..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/service/EtapaEnsinoService.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package br.com.imd.cadeduc.ensino.service;
-
-import java.util.List;
-import java.util.Optional;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.validation.BindingResult;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.core.service.GenericService;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.core.service.exception.ResourceConflictException;
-import br.com.imd.cadeduc.ensino.dao.EtapaEnsinoDAO;
-import br.com.imd.cadeduc.ensino.domain.EtapaEnsino;
-
-@Component
-public class EtapaEnsinoService extends GenericService {
-
- @Override
- public List listar() throws GenericServiceException {
- return super.listar();
- }
-
- @Override
- public void salvar(EtapaEnsino etapaEnsino, BindingResult resultado) throws GenericServiceException {
- super.salvar(etapaEnsino, resultado);
- }
-
- @Override
- public Optional buscar(Long id) throws GenericServiceException {
- return super.buscar(id);
- }
-
- @Autowired
- public void setDao(GenericDAO dao) {
- super.dao = dao;
- }
-
- @Override
- protected void verificaExistencia(EtapaEnsino etapaEnsino) throws GenericServiceException {
- Optional etapaCadastrada = ((EtapaEnsinoDAO) dao).findEtapaEnsinoByNome(etapaEnsino.getNome());
- if (etapaEnsino.getId() != 0 || etapaCadastrada.isPresent()) {
- throw new ResourceConflictException();
- }
- }
-}
diff --git a/src/main/java/br/com/imd/cadeduc/ensino/service/SerieService.java b/src/main/java/br/com/imd/cadeduc/ensino/service/SerieService.java
deleted file mode 100644
index 0097300..0000000
--- a/src/main/java/br/com/imd/cadeduc/ensino/service/SerieService.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package br.com.imd.cadeduc.ensino.service;
-
-import java.util.List;
-import java.util.Optional;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.validation.BindingResult;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.core.service.GenericService;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.core.service.exception.ResourceConflictException;
-import br.com.imd.cadeduc.ensino.dao.SerieDAO;
-import br.com.imd.cadeduc.ensino.domain.Serie;
-
-@Component
-public class SerieService extends GenericService {
-
- @Override
- public List listar() throws GenericServiceException {
- return super.listar();
- }
-
- @Override
- public void salvar(Serie serie, BindingResult resultado) throws GenericServiceException {
- super.salvar(serie, resultado);
- }
-
- @Override
- public Optional buscar(Long id) throws GenericServiceException {
- return super.buscar(id);
- }
-
-
- @Autowired
- public void setDao(GenericDAO dao) {
- super.dao = dao;
- }
-
- @Override
- protected void verificaExistencia(Serie serie) throws GenericServiceException {
- Optional serieCadastrada = ((SerieDAO) dao).findSerieByNome(serie.getNome());
- if(serie.getId()!=0 || serieCadastrada.isPresent()) {
- throw new ResourceConflictException();
- }
- }
-}
diff --git a/src/main/java/br/com/imd/cadeduc/escola/dao/EscolaDAO.java b/src/main/java/br/com/imd/cadeduc/escola/dao/EscolaDAO.java
deleted file mode 100644
index a993c0d..0000000
--- a/src/main/java/br/com/imd/cadeduc/escola/dao/EscolaDAO.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package br.com.imd.cadeduc.escola.dao;
-
-import java.util.Optional;
-
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.escola.domain.Escola;
-
-@Repository
-public interface EscolaDAO extends GenericDAO {
-
- @Query("SELECT e FROM Escola e WHERE e.endereco.id = :idEndereco")
- public Optional findEscolaByEndereco(@Param("idEndereco") Long idEndereco);
-}
diff --git a/src/main/java/br/com/imd/cadeduc/escola/domain/Escola.java b/src/main/java/br/com/imd/cadeduc/escola/domain/Escola.java
deleted file mode 100644
index 1d3d36e..0000000
--- a/src/main/java/br/com/imd/cadeduc/escola/domain/Escola.java
+++ /dev/null
@@ -1,163 +0,0 @@
-package br.com.imd.cadeduc.escola.domain;
-
-import java.util.List;
-
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-
-import br.com.imd.cadeduc.ensino.domain.Serie;
-import br.com.imd.cadeduc.localizacao.domain.Endereco;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- *
- * Classe que define o modelo Escola
- *
- * @author Miguel
- * @version 0.3
- *
- */
-
-@Entity
-@Table(name = "escola", schema = "escola")
-@ApiModel
-public class Escola {
-
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @Column(name = "id_escola")
- @ApiModelProperty(hidden = true, notes = "ID gerado automaticamente pela base de dados")
- private Long id;
-
- @NotBlank(message = "Campo em branco")
- @NotNull(message = "Campo nulo")
- @ApiModelProperty(notes = "Nome da instituição", required = true)
- private String nome;
-
- @ApiModelProperty(notes = "Telefone da instituição")
- private String telefone;
-
- @NotNull(message = "Campo nulo")
- @OneToOne(cascade = CascadeType.MERGE)
- @JoinColumn(name = "id_endereco")
- @ApiModelProperty(notes = "Endereço da Instituição", required = true)
- private Endereco endereco;
-
- @ManyToMany(fetch = FetchType.EAGER)
- @JoinColumn(name = "id_serie")
- @ApiModelProperty(notes = "Séries da instituição")
- private List series;
-
- public Escola() {
- id = new Long(0);
- }
-
- /**
- * Método para retorno do id de uma instância de Escola
- *
- * @return Long - Valor do id
- */
- public Long getId() {
- return id;
- }
-
- /**
- * Altera o valor do id de uma instância de Escola
- *
- * @param id
- * Long - Novo valor do id
- */
-
- public void setId(Long id) {
- this.id = id;
- }
-
- /**
- * Método que retorna o nome da escola
- *
- * @return String - Nome da escola
- */
- public String getNome() {
- return nome;
- }
-
- /**
- * Método que modifica o nome da escola
- *
- * @param nome
- * String - Novo nome da escola
- */
- public void setNome(String nome) {
- this.nome = nome;
- }
-
- /**
- * Retorna o endereço da escola
- *
- * @return Endereco - Endereço da escola
- */
- public Endereco getEndereco() {
- return endereco;
- }
-
- /**
- * Altera o endereço de uma instância de Escola
- *
- * @param endereco
- * Endereco - Novo endereço
- */
- public void setEndereco(Endereco endereco) {
- this.endereco = endereco;
- }
-
- /**
- * Método para retorno o telefone da escola
- *
- * @return String - Telefone da escola
- */
- public String getTelefone() {
- return telefone;
- }
-
- /**
- * Altera o telefone de uma instância de Escola
- *
- * @param telefone
- * String - Novo Telefone
- */
- public void setTelefone(String telefone) {
- this.telefone = telefone;
- }
-
- /**
- * Método para retornar as séries de uma escola
- *
- * @return List series da escola
- */
- public List getSeries() {
- return series;
- }
-
- /**
- * Altera as séries de uma instância de Escola
- *
- * @param series
- * String - Novo Telefone
- */
- public void setSeries(List series) {
- this.series = series;
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/escola/resources/EscolaReportController.java b/src/main/java/br/com/imd/cadeduc/escola/resources/EscolaReportController.java
deleted file mode 100644
index 31f4a9d..0000000
--- a/src/main/java/br/com/imd/cadeduc/escola/resources/EscolaReportController.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package br.com.imd.cadeduc.escola.resources;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.escola.service.EscolaService;
-
-@Controller
-@RequestMapping("/reports")
-public class EscolaReportController {
-
- @Autowired
- EscolaService escolaService;
-
- public EscolaReportController(EscolaService escolaService) {
- this.escolaService = escolaService;
- }
-
-
- @GetMapping("/html")
- public String html(@RequestParam(required = false, value = "escola") Long id, Model model) throws GenericServiceException {
-
- model.addAttribute("escolas", this.escolaService.listar());
-
- if (id == null) {
- return "report/index";
- }
-
- model.addAttribute("atribute", this.escolaService.buscar(id).get().getSeries());
-
- return "report/index";
-
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/escola/resources/EscolaResources.java b/src/main/java/br/com/imd/cadeduc/escola/resources/EscolaResources.java
deleted file mode 100644
index c0172ab..0000000
--- a/src/main/java/br/com/imd/cadeduc/escola/resources/EscolaResources.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package br.com.imd.cadeduc.escola.resources;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Optional;
-
-import javax.validation.Valid;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.CrossOrigin;
-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.RestController;
-import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
-
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.escola.domain.Escola;
-import br.com.imd.cadeduc.escola.service.EscolaService;
-import io.swagger.annotations.Api;
-
-@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
-@RestController
-@RequestMapping(value = "/escolas", produces = "application/json")
-@Api(tags = "Escolas", description = "Operações pertinentes a escolas")
-public class EscolaResources {
-
- @Autowired
- EscolaService escolaService;
-
- @RequestMapping(method = RequestMethod.GET)
- public List listar() throws GenericServiceException {
- return escolaService.listar();
-
- }
-
- @RequestMapping(method = RequestMethod.POST)
- public ResponseEntity salvar(@Valid @RequestBody Escola escola, BindingResult resultado) throws GenericServiceException {
-
- escolaService.salvar(escola, resultado);
-
- URI uri = ServletUriComponentsBuilder.fromCurrentRequest().path("/{id}").buildAndExpand(escola.getId()).toUri();
-
- return ResponseEntity.created(uri).build();
- }
-
- @RequestMapping(value = "/{id}", method = RequestMethod.GET)
- public Optional buscar(@PathVariable("id") Long id) throws GenericServiceException {
- return escolaService.buscar(id);
- }
-}
diff --git a/src/main/java/br/com/imd/cadeduc/escola/service/EscolaService.java b/src/main/java/br/com/imd/cadeduc/escola/service/EscolaService.java
deleted file mode 100644
index 9723c47..0000000
--- a/src/main/java/br/com/imd/cadeduc/escola/service/EscolaService.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package br.com.imd.cadeduc.escola.service;
-
-import java.util.List;
-import java.util.Optional;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.validation.BindingResult;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.core.service.GenericService;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.core.service.exception.ResourceConflictException;
-import br.com.imd.cadeduc.escola.dao.EscolaDAO;
-import br.com.imd.cadeduc.escola.domain.Escola;
-
-@Component
-public class EscolaService extends GenericService {
-
- @Override
- public List listar() throws GenericServiceException {
- return super.listar();
- }
-
- @Override
- public void salvar(Escola escola, BindingResult resultado) throws GenericServiceException {
- super.salvar(escola, resultado);
- }
-
- @Override
- public Optional buscar(Long id) throws GenericServiceException {
- return super.buscar(id);
- }
-
- @Autowired
- public void setDao(GenericDAO dao) {
- super.dao = dao;
- }
-
- @Override
- protected void verificaExistencia(Escola escola) throws GenericServiceException {
- Optional escolaCadastrada = ((EscolaDAO) dao).findEscolaByEndereco(escola.getEndereco().getId());
- if (escola.getId() != 0 || escolaCadastrada.isPresent()) {
- throw new ResourceConflictException();
- }
- }
-}
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/dao/EnderecoDAO.java b/src/main/java/br/com/imd/cadeduc/localizacao/dao/EnderecoDAO.java
deleted file mode 100644
index 2d3bbb3..0000000
--- a/src/main/java/br/com/imd/cadeduc/localizacao/dao/EnderecoDAO.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package br.com.imd.cadeduc.localizacao.dao;
-
-import java.util.Optional;
-
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.localizacao.domain.Endereco;
-
-@Repository
-public interface EnderecoDAO extends GenericDAO {
-
- public Optional findEnderecoByLatitudeAndLongitude(@Param("latitude") double latitude,
- @Param("longitude") double longitude);
-}
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/dao/MunicipioDAO.java b/src/main/java/br/com/imd/cadeduc/localizacao/dao/MunicipioDAO.java
deleted file mode 100644
index 06be7e8..0000000
--- a/src/main/java/br/com/imd/cadeduc/localizacao/dao/MunicipioDAO.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package br.com.imd.cadeduc.localizacao.dao;
-
-import java.util.Optional;
-
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.localizacao.domain.Municipio;
-
-@Repository
-public interface MunicipioDAO extends GenericDAO {
-
- @Query(value="SELECT * FROM localizacao.municipio m WHERE m.nome = :nome and m.estado = :#{#estado} LIMIT 1", nativeQuery = true)
- Optional findTop1MunicipioByNomeAndEstado(@Param("nome")String nome, @Param("estado") String estado);
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/service/EnderecoService.java b/src/main/java/br/com/imd/cadeduc/localizacao/service/EnderecoService.java
deleted file mode 100644
index 7176f44..0000000
--- a/src/main/java/br/com/imd/cadeduc/localizacao/service/EnderecoService.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package br.com.imd.cadeduc.localizacao.service;
-
-import java.util.List;
-import java.util.Optional;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.validation.BindingResult;
-
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.core.service.GenericService;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.core.service.exception.ResourceConflictException;
-import br.com.imd.cadeduc.localizacao.dao.EnderecoDAO;
-import br.com.imd.cadeduc.localizacao.domain.Endereco;
-
-@Component
-public class EnderecoService extends GenericService {
-
- @Override
- public List listar() throws GenericServiceException {
- return super.listar();
- }
-
- @Override
- public void salvar(Endereco endereco, BindingResult resultado) throws GenericServiceException {
- super.salvar(endereco, resultado);
- }
-
- @Override
- public Optional buscar(Long id) throws GenericServiceException {
- return super.buscar(id);
- }
-
- @Autowired
- public void setDao(GenericDAO dao) {
- super.dao = dao;
- }
-
- @Override
- protected void verificaExistencia(Endereco endereco) throws GenericServiceException {
- Optional enderecoCadastrado = ((EnderecoDAO) dao)
- .findEnderecoByLatitudeAndLongitude(endereco.getLatitude(), endereco.getLongitude());
-
- if(endereco.getId()!=0 || enderecoCadastrado.isPresent()) {
- throw new ResourceConflictException();
- }
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadeduc/util/ValidatorUtil.java b/src/main/java/br/com/imd/cadeduc/util/ValidatorUtil.java
deleted file mode 100644
index 65d08c3..0000000
--- a/src/main/java/br/com/imd/cadeduc/util/ValidatorUtil.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package br.com.imd.cadeduc.util;
-
-import java.util.List;
-
-import org.springframework.validation.FieldError;
-import org.springframework.validation.ObjectError;
-
-import com.google.gson.Gson;
-
-public class ValidatorUtil {
-
- public static String gerarErrorsInJson(List allErrors) {
-
- StringBuilder message = new StringBuilder();
- message.append("{Errors:[");
- for (ObjectError error : allErrors) {
- message.append("{");
- message.append(((FieldError) error).getField().concat(": "+ error.getDefaultMessage()));
- message.append("}");
- message.append(",");
- }
- message.append("]");
-
- String errors = message.toString().replace("},]", "}]}");
-
- return new Gson().toJson(errors);
- }
-
- public static boolean isEmpty(Object o) {
- //Validar de forma genérica quando um objeto está ou não válido
- return true;
- }
-
-}
diff --git a/src/main/java/br/com/imd/cadwork/CadworkapiApplication.java b/src/main/java/br/com/imd/cadwork/CadworkapiApplication.java
new file mode 100644
index 0000000..32f2f5e
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/CadworkapiApplication.java
@@ -0,0 +1,15 @@
+package br.com.imd.cadwork;
+
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+/**
+ * Classe para inicializar aplicação
+ * @author Welligton Miguel
+ * @version 0.1
+ */
+@EnableSwagger2
+@SpringBootApplication
+public class CadworkapiApplication {
+}
+
diff --git a/src/main/java/br/com/imd/cadwork/core/config/DetalheError.java b/src/main/java/br/com/imd/cadwork/core/config/DetalheError.java
new file mode 100644
index 0000000..612e3e6
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/config/DetalheError.java
@@ -0,0 +1,83 @@
+package br.com.imd.cadwork.core.config;
+
+import org.springframework.http.HttpStatus;
+/**
+ * Classe modelo das respostas aos errors e seus detalhes
+ * @author Welligton Miguel
+ * @version 0.1
+ */
+
+public class DetalheError {
+
+ private String titulo;
+ private HttpStatus status;
+ private Long timestamp;
+ private String mensagem;
+
+ /**
+ * Método que retorna o titulo do error
+ * @return String - titulo do error
+ */
+
+ public String getTitulo() {
+ return titulo;
+ }
+
+ /**
+ * Altera titulo do error
+ * @param titulo String - novo tÃtulo
+ */
+
+ public void setTitulo(String titulo) {
+ this.titulo = titulo;
+ }
+
+ /**
+ * Método que retorna o status do error
+ * @return HttpStatus - status do error
+ */
+
+ public HttpStatus getStatus() {
+ return status;
+ }
+
+ /**
+ * Método que altera o status do error
+ * @param status HttpStatus - novo status do error
+ */
+
+ public void setStatus(HttpStatus status) {
+ this.status = status;
+ }
+ /**
+ * Método que o retorna o time stamp do error
+ * @return Long - time stamp do error
+ */
+
+ public Long getTimestamp() {
+ return timestamp;
+ }
+ /**
+ * Método que altera o time stamp do error
+ * @param timestamp Long - novo time stamp
+ */
+ public void setTimestamp(Long timestamp) {
+ this.timestamp = timestamp;
+ }
+ /**
+ * Método que retorna a mensagem do error
+ * @return String - mensagem do error
+ */
+
+ public String getMensagem() {
+ return mensagem;
+ }
+ /**
+ * Método que altera a mensagem do error
+ * @param mensagem String - nova mensagem do error
+ */
+ public void setMensagem(String mensagem) {
+ this.mensagem = mensagem;
+ }
+
+}
diff --git a/src/main/java/br/com/imd/cadeduc/core/config/ResponseMessagesConfig.java b/src/main/java/br/com/imd/cadwork/core/config/ResponseMessagesConfig.java
similarity index 96%
rename from src/main/java/br/com/imd/cadeduc/core/config/ResponseMessagesConfig.java
rename to src/main/java/br/com/imd/cadwork/core/config/ResponseMessagesConfig.java
index a7adb93..6f24bee 100644
--- a/src/main/java/br/com/imd/cadeduc/core/config/ResponseMessagesConfig.java
+++ b/src/main/java/br/com/imd/cadwork/core/config/ResponseMessagesConfig.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.core.config;
+package br.com.imd.cadwork.core.config;
import static com.google.common.collect.Lists.newArrayList;
@@ -24,7 +24,9 @@ public class ResponseMessagesConfig {
private static ResponseMessagesConfig instancia;
private static Map mensagens;
-
+ /**
+ * Procedimento de inicialização das mensagens padrões
+ */
private ResponseMessagesConfig() {
mensagens = new HashMap<>();
mensagensPadroes();
diff --git a/src/main/java/br/com/imd/cadeduc/core/config/SwaggerConfig.java b/src/main/java/br/com/imd/cadwork/core/config/SwaggerConfig.java
similarity index 72%
rename from src/main/java/br/com/imd/cadeduc/core/config/SwaggerConfig.java
rename to src/main/java/br/com/imd/cadwork/core/config/SwaggerConfig.java
index 69237f0..9162ac2 100644
--- a/src/main/java/br/com/imd/cadeduc/core/config/SwaggerConfig.java
+++ b/src/main/java/br/com/imd/cadwork/core/config/SwaggerConfig.java
@@ -1,6 +1,4 @@
-package br.com.imd.cadeduc.core.config;
-
-
+package br.com.imd.cadwork.core.config;
import java.time.LocalDate;
import java.util.Collections;
@@ -9,8 +7,8 @@
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.PathSelectors;
@@ -22,7 +20,7 @@
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
- * Classe qe define as configurações da documentação Swagger
+ * Classe que define as configurações da documentação Swagger
*
* @author miguel
* @version 0.2
@@ -34,23 +32,19 @@ public class SwaggerConfig extends WebMvcConfigurationSupport{
/**
* Função central que constroi a documentação
- * @return
+ * @return Docket
*/
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
- .apis(RequestHandlerSelectors.basePackage("br.com.imd.cadeduc"))
+ .apis(RequestHandlerSelectors.basePackage("br.com.imd"))
.paths(PathSelectors.any())
.build()
.pathMapping("/")
.directModelSubstitute(LocalDate.class, String.class)
.genericModelSubstitutes(ResponseEntity.class)
- .useDefaultResponseMessages(false)
- .globalResponseMessage(RequestMethod.GET,
- ResponseMessagesConfig.getInstance().listaMensagens())
- .globalResponseMessage(RequestMethod.POST,
- ResponseMessagesConfig.getInstance().listaMensagens())
+ .useDefaultResponseMessages(true)
.apiInfo(metaData());
}
@@ -61,11 +55,11 @@ public Docket api() {
*/
private ApiInfo metaData() {
ApiInfo apiInfo = new ApiInfo(
- "CADEduc",
- "Spring Boot REST API para Geocalização de escolas",
+ "CADWork",
+ "Spring Boot REST API para Geocalização de recursos",
"1.0",
"Termos e Serviço",
- new Contact("CADEduc", "https://cadeduc.imd.com.br/about/", "miguelwelligton@gmail.com"),
+ new Contact("CADEduc", "https://cadwork.imd.com.br/about/", "miguelwelligton@gmail.com"),
"GNU General Public License 3.0",
"https://www.gnu.org/licenses/gpl.txt", Collections.emptyList());
return apiInfo;
@@ -83,5 +77,13 @@ protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
+
+ @Override
+ public void addViewControllers(ViewControllerRegistry registry) {
+ registry.addRedirectViewController("/null/v2/api-docs", "/v2/api-docs");
+ registry.addRedirectViewController("/null/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui");
+ registry.addRedirectViewController("/null/swagger-resources/configuration/security", "/swagger-resources/configuration/security");
+ registry.addRedirectViewController("/null/swagger-resources", "/swagger-resources");
+ }
}
\ No newline at end of file
diff --git a/src/main/java/br/com/imd/cadeduc/core/dao/GenericDAO.java b/src/main/java/br/com/imd/cadwork/core/dao/GenericDAO.java
similarity index 55%
rename from src/main/java/br/com/imd/cadeduc/core/dao/GenericDAO.java
rename to src/main/java/br/com/imd/cadwork/core/dao/GenericDAO.java
index 18b5b33..8c80633 100644
--- a/src/main/java/br/com/imd/cadeduc/core/dao/GenericDAO.java
+++ b/src/main/java/br/com/imd/cadwork/core/dao/GenericDAO.java
@@ -1,8 +1,13 @@
-package br.com.imd.cadeduc.core.dao;
+package br.com.imd.cadwork.core.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.NoRepositoryBean;
-
+/**
+ * Interface para criação de DAO no sistema
+ * @author Welligton Miguel
+ *
+ * @param - Classe modelo para criar o DAO
+ */
@NoRepositoryBean
public interface GenericDAO extends JpaRepository {
diff --git a/src/main/java/br/com/imd/cadwork/core/dao/GenericDomainException.java b/src/main/java/br/com/imd/cadwork/core/dao/GenericDomainException.java
new file mode 100644
index 0000000..2d977aa
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/dao/GenericDomainException.java
@@ -0,0 +1,19 @@
+package br.com.imd.cadwork.core.dao;
+
+
+/**
+ * Classe de excessões padrões
+ * @author Welligton Miguel
+ *
+ */
+public class GenericDomainException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+ /**
+ * Construtor da classe
+ * @param message String - mensagem para repassar para Exception
+ */
+ public GenericDomainException(String message) {
+ super(message);
+ }
+}
diff --git a/src/main/java/br/com/imd/cadwork/core/exception/ManipuladorException.java b/src/main/java/br/com/imd/cadwork/core/exception/ManipuladorException.java
new file mode 100644
index 0000000..66226ba
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/exception/ManipuladorException.java
@@ -0,0 +1,108 @@
+package br.com.imd.cadwork.core.exception;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+
+import br.com.imd.cadwork.core.config.DetalheError;
+import br.com.imd.cadwork.core.config.ResponseMessagesConfig;
+import br.com.imd.cadwork.core.service.exception.GenericServiceException;
+import br.com.imd.cadwork.core.service.exception.ResourceConflictException;
+import br.com.imd.cadwork.core.service.exception.ResourceEmptyException;
+import br.com.imd.cadwork.core.service.exception.ResourceNotFoundException;
+import br.com.imd.cadwork.util.exception.ConvertLocalizavelException;
+
+/**
+ * Handler que atua entre as classes de exceções
+ * Formatando as exceções emitidas e as padronizando
+ * @author miguel
+ *
+ */
+@ControllerAdvice
+public class ManipuladorException {
+
+ /**
+ * Captura a exceção lançada do tipo {@link br.com.imd.cadwork.core.service.exception.ResourceEmptyException}
+ * @param e Exceção lançada
+ * @param request Requisição que causou a exceção
+ * @return ResponseEntity - Response com a mensagem correspondente a exceção
+ */
+ @ExceptionHandler(ResourceEmptyException.class)
+ public ResponseEntity manipuladorResourceEmptyException(GenericServiceException e,
+ HttpServletRequest request) {
+
+ DetalheError error = gerarMensagemError(HttpStatus.NOT_ACCEPTABLE, e);
+
+ return ResponseEntity.status(HttpStatus.NOT_ACCEPTABLE).body(error);
+ }
+
+ /**
+ * Captura a exceção lançada do tipo {@link br.com.imd.cadwork.core.service.exception.ResourceNotFoundException}
+ * @param e Exceção lançada
+ * @param request Requisição que causou a exceção
+ * @return ResponseEntity<{@link br.com.imd.cadwork.core.config.DetalheError}> - Response com a mensagem correspondente a exceção
+ */
+ @ExceptionHandler(ResourceNotFoundException.class)
+ public ResponseEntity manipuladorResourceNotFoundException(GenericServiceException e,
+ HttpServletRequest request) {
+
+ DetalheError error = gerarMensagemError(HttpStatus.NOT_FOUND, e);
+
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).body(error);
+ }
+
+ /**
+ * Captura a exceção lançada do tipo {@link br.com.imd.cadwork.core.service.exception.ResourceConflictException}
+ * @param e Exceção lançada
+ * @param request Requisição que causou a exceção
+ * @return ResponseEntity<{@link br.com.imd.cadwork.core.config.DetalheError}> -
+ * Response com a mensagem correspondente a exceção
+ */
+ @ExceptionHandler(ResourceConflictException.class)
+ public ResponseEntity manipuladorResourceConflictException(GenericServiceException e,
+ HttpServletRequest request) {
+
+ DetalheError error = gerarMensagemError(HttpStatus.CONFLICT, e);
+
+ return ResponseEntity.status(HttpStatus.CONFLICT).body(error);
+ }
+
+ /**
+ * Captura a exceção lançada do tipo {@link br.com.imd.cadwork.util.exception.ConvertLocalizavelException}
+ * @param e Exceção lançada
+ * @param request Requisição que causou a exceção
+ * @return ResponseEntity<{@link br.com.imd.cadwork.core.config.DetalheError}> -
+ * Response com a mensagem correspondente a exceção
+ */
+ @ExceptionHandler(ConvertLocalizavelException.class)
+ public ResponseEntity manipuladorResourceConvertLocalizavelException(GenericServiceException e,
+ HttpServletRequest request) {
+
+ DetalheError error = gerarMensagemError(HttpStatus.INTERNAL_SERVER_ERROR, e);
+
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(error);
+ }
+ /**
+ * Procedimento que dada uma exceção juntamente com o status da mensagem pertencente ao protocolo http,
+ * formata uma mensagem padrão de resposta ao usuário
+ * @param status - Status correspondente ao verbo http
+ * @param e exceção lançada
+ * @return {@link br.com.imd.cadwork.core.config.DetalheError} - Mensagem padronizada referente a exceção recebida
+ */
+ private DetalheError gerarMensagemError(HttpStatus status, GenericServiceException e) {
+ DetalheError error = new DetalheError();
+
+ error.setStatus(status);
+ error.setTitulo(ResponseMessagesConfig.getInstance().getMensagens()
+ .get(status.ordinal()).getMessage());
+
+ error.setTimestamp(System.currentTimeMillis());
+ error.setMensagem(e.getMessage().replaceAll("\"", ""));
+
+ return error;
+ }
+
+}
diff --git a/src/main/java/br/com/imd/cadwork/core/localizacao/dao/EnderecoDAO.java b/src/main/java/br/com/imd/cadwork/core/localizacao/dao/EnderecoDAO.java
new file mode 100644
index 0000000..df97ff7
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/dao/EnderecoDAO.java
@@ -0,0 +1,25 @@
+package br.com.imd.cadwork.core.localizacao.dao;
+
+import java.util.Optional;
+
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import br.com.imd.cadwork.core.dao.GenericDAO;
+import br.com.imd.cadwork.core.localizacao.domain.Endereco;
+/**
+ * Interface que herda da GeneticDAO para criar um DAO de Endereço
+ * @author Welligton Miguel
+ */
+@Repository
+public interface EnderecoDAO extends GenericDAO {
+ /**
+ * Função para buscar endereço através da longitude e latitude
+ *
+ * @param latitude double - latitude do endereço
+ * @param longitude double - longitude do endereço
+ * @return Option - Optional de um endereço
+ */
+ public Optional findEnderecoByLatitudeAndLongitude(@Param("latitude") double latitude,
+ @Param("longitude") double longitude);
+}
diff --git a/src/main/java/br/com/imd/cadwork/core/localizacao/dao/MunicipioDAO.java b/src/main/java/br/com/imd/cadwork/core/localizacao/dao/MunicipioDAO.java
new file mode 100644
index 0000000..83754ff
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/dao/MunicipioDAO.java
@@ -0,0 +1,27 @@
+package br.com.imd.cadwork.core.localizacao.dao;
+
+import java.util.Optional;
+
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import br.com.imd.cadwork.core.dao.GenericDAO;
+import br.com.imd.cadwork.core.localizacao.domain.Municipio;
+/**
+ * Interface que herda da GeneticDAO para criar um DAO de Municipio
+ * @author Welligton Miguel
+ */
+@Repository
+public interface MunicipioDAO extends GenericDAO {
+
+ /**
+ * Retorna um único municipio para o nome e estado passados
+ * @param nome String - nome do municipio a ser pesquisado
+ * @param estado String - estado ao qual o municipio pertence
+ * @return Optional<{@link br.com.imd.cadwork.core.localizacao.domain.Municipio}> - optional de um municipio
+ */
+ @Query(value="SELECT * FROM localizacao.municipio m WHERE m.nome = :nome and m.estado = :#{#estado} LIMIT 1", nativeQuery = true)
+ Optional findTop1MunicipioByNomeAndEstado(@Param("nome")String nome, @Param("estado") String estado);
+
+}
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/domain/Endereco.java b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/Endereco.java
similarity index 96%
rename from src/main/java/br/com/imd/cadeduc/localizacao/domain/Endereco.java
rename to src/main/java/br/com/imd/cadwork/core/localizacao/domain/Endereco.java
index 90a544c..37a506b 100644
--- a/src/main/java/br/com/imd/cadeduc/localizacao/domain/Endereco.java
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/Endereco.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.localizacao.domain;
+package br.com.imd.cadwork.core.localizacao.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -61,12 +61,12 @@ public class Endereco {
@NotNull(message = "Campo nulo")
@ApiModelProperty(notes = "Latitude da Instituição", required = true)
@Column(nullable = true)
- private double latitude;
+ private Double latitude;
@NotNull(message = "Campo nulo")
@ApiModelProperty(notes = "Longitude da Instituição", required = true)
@Column(nullable = true)
- private double longitude;
+ private Double longitude;
@NotNull(message = "Campo nulo")
@Column(name = "tipo_localizacao")
@@ -80,6 +80,10 @@ public class Endereco {
@ApiModelProperty(notes = "MunicÃpio da instituição ", required = true)
private Municipio municipio;
+ /**
+ * Construtor da classe Endereço
+ */
+
public Endereco(){
id = new Long(0);
}
@@ -203,7 +207,7 @@ public void setCep(String cep) {
*
* @return double - latitude de um endereço
*/
- public double getLatitude() {
+ public Double getLatitude() {
return latitude;
}
@@ -213,7 +217,7 @@ public double getLatitude() {
* @param latitude
* double - nova latitude de um endereço
*/
- public void setLatitude(double latitude) {
+ public void setLatitude(Double latitude) {
this.latitude = latitude;
}
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/domain/EstadosEnum.java b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/EstadosEnum.java
similarity index 96%
rename from src/main/java/br/com/imd/cadeduc/localizacao/domain/EstadosEnum.java
rename to src/main/java/br/com/imd/cadwork/core/localizacao/domain/EstadosEnum.java
index 7fc4196..ff3aa33 100644
--- a/src/main/java/br/com/imd/cadeduc/localizacao/domain/EstadosEnum.java
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/EstadosEnum.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.localizacao.domain;
+package br.com.imd.cadwork.core.localizacao.domain;
import io.swagger.annotations.ApiModel;
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/domain/Municipio.java b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/Municipio.java
similarity index 97%
rename from src/main/java/br/com/imd/cadeduc/localizacao/domain/Municipio.java
rename to src/main/java/br/com/imd/cadwork/core/localizacao/domain/Municipio.java
index 1df38b0..ea3fcfc 100644
--- a/src/main/java/br/com/imd/cadeduc/localizacao/domain/Municipio.java
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/Municipio.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.localizacao.domain;
+package br.com.imd.cadwork.core.localizacao.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/domain/TipoLocalizacaoEnum.java b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/TipoLocalizacaoEnum.java
similarity index 84%
rename from src/main/java/br/com/imd/cadeduc/localizacao/domain/TipoLocalizacaoEnum.java
rename to src/main/java/br/com/imd/cadwork/core/localizacao/domain/TipoLocalizacaoEnum.java
index a7b02fd..77dee53 100644
--- a/src/main/java/br/com/imd/cadeduc/localizacao/domain/TipoLocalizacaoEnum.java
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/domain/TipoLocalizacaoEnum.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.localizacao.domain;
+package br.com.imd.cadwork.core.localizacao.domain;
import io.swagger.annotations.ApiModel;
@@ -10,7 +10,6 @@
* @version 0.2
*
*/
-
@ApiModel
public enum TipoLocalizacaoEnum {
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/resources/EnderecoResources.java b/src/main/java/br/com/imd/cadwork/core/localizacao/resources/EnderecoResources.java
similarity index 60%
rename from src/main/java/br/com/imd/cadeduc/localizacao/resources/EnderecoResources.java
rename to src/main/java/br/com/imd/cadwork/core/localizacao/resources/EnderecoResources.java
index e7faee4..3e31eb7 100644
--- a/src/main/java/br/com/imd/cadeduc/localizacao/resources/EnderecoResources.java
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/resources/EnderecoResources.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.localizacao.resources;
+package br.com.imd.cadwork.core.localizacao.resources;
import java.net.URI;
import java.util.List;
@@ -9,7 +9,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,12 +16,16 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.localizacao.domain.Endereco;
-import br.com.imd.cadeduc.localizacao.service.EnderecoService;
+import br.com.imd.cadwork.core.localizacao.domain.Endereco;
+import br.com.imd.cadwork.core.localizacao.service.EnderecoService;
+import br.com.imd.cadwork.core.service.exception.GenericServiceException;
import io.swagger.annotations.Api;
-@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
+/**
+ * Classe que faz o controle dos endpoints da API com os dados de enderecos
+ * @author Welligton Miguel
+ *
+ */
@RestController
@RequestMapping(value = "/enderecos", produces = "application/json")
@Api(tags = "Enderecos", description = "Operações pertinentes a endereços")
@@ -30,13 +33,23 @@ public class EnderecoResources {
@Autowired
EnderecoService enderecoService;
-
+ /**
+ * Retorna todos os enderecos da API
+ * @return List<{@link br.com.imd.cadwork.core.localizacao.domain.Endereco}> - todos os endereços da API
+ * @throws GenericServiceException
+ */
@RequestMapping(method = RequestMethod.GET)
public List listar() throws GenericServiceException {
return enderecoService.listar();
}
-
+ /**
+ * Função para adicionar um endereco na API
+ * @param municipio Endereco - endereco para ser adicionado na API
+ * @param resultado BindingResult
+ * @return ResponseEntity<{@link java.lang.String}>
+ * @throws GenericServiceException
+ */
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity salvar(@Valid @RequestBody Endereco endereco, BindingResult resultado) throws GenericServiceException {
@@ -47,10 +60,14 @@ public ResponseEntity salvar(@Valid @RequestBody Endereco endereco, Bind
return ResponseEntity.created(uri).build();
}
-
+ /**
+ * Retorna endereco associado a um determinado id
+ * @param id Long - id para retornar endereco associado
+ * @return Optional<{@link br.com.imd.cadwork.core.localizacao.domain.Endereco}> - caso o id seja válido retorna um endereco
+ * @throws GenericServiceException
+ */
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Optional buscar(@PathVariable("id") Long id) throws GenericServiceException {
return enderecoService.buscar(id);
}
-
}
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/resources/MunicipioResources.java b/src/main/java/br/com/imd/cadwork/core/localizacao/resources/MunicipioResources.java
similarity index 61%
rename from src/main/java/br/com/imd/cadeduc/localizacao/resources/MunicipioResources.java
rename to src/main/java/br/com/imd/cadwork/core/localizacao/resources/MunicipioResources.java
index 33e76d8..acd3363 100644
--- a/src/main/java/br/com/imd/cadeduc/localizacao/resources/MunicipioResources.java
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/resources/MunicipioResources.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.localizacao.resources;
+package br.com.imd.cadwork.core.localizacao.resources;
import java.net.URI;
import java.util.List;
@@ -16,11 +16,15 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.localizacao.domain.Municipio;
-import br.com.imd.cadeduc.localizacao.service.MunicipioService;
+import br.com.imd.cadwork.core.localizacao.domain.Municipio;
+import br.com.imd.cadwork.core.localizacao.service.MunicipioService;
+import br.com.imd.cadwork.core.service.exception.GenericServiceException;
import io.swagger.annotations.Api;
-
+/**
+ * Classe que faz o controle dos endpoints da API com os dados de municipios
+ * @author Welligton Miguel
+ *
+ */
@RestController
@RequestMapping(value = "/municipios", produces = "application/json")
@Api(tags = "MunicÃpios", value = "onlinestore", description = "Operações pertinentes a municÃpios")
@@ -29,12 +33,23 @@ public class MunicipioResources {
@Autowired
MunicipioService municipioService;
+ /**
+ * Retorna todos os municipios da API
+ * @return List<{@link br.com.imd.cadwork.core.localizacao.domain.Municipio}> - todos os municipios da API
+ * @throws GenericServiceException
+ */
@RequestMapping(method = RequestMethod.GET)
public List listar() throws GenericServiceException {
return municipioService.listar();
}
-
+ /**
+ * Função para adicionar municipio na API
+ * @param municipio Municipio - municipio para ser adicionado na API
+ * @param resultado BindingResult
+ * @return ResponseEntity<{@link java.lang.String}>
+ * @throws GenericServiceException
+ */
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity salvar(@Valid @RequestBody Municipio municipio, BindingResult resultado) throws GenericServiceException {
municipioService.salvar(municipio, resultado);
@@ -44,7 +59,12 @@ public ResponseEntity salvar(@Valid @RequestBody Municipio municipio, Bi
return ResponseEntity.created(uri).build();
}
-
+ /**
+ * Retorna municipio associado a um determinado id
+ * @param id Long - id para retornar municipio associado
+ * @return Optional<{@link br.com.imd.cadwork.core.localizacao.domain.Municipio}> - caso o id seja válido retorna um muninipio
+ * @throws GenericServiceException
+ */
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Optional buscar(@PathVariable("id") Long id) throws GenericServiceException {
return municipioService.buscar(id);
diff --git a/src/main/java/br/com/imd/cadwork/core/localizacao/service/EnderecoService.java b/src/main/java/br/com/imd/cadwork/core/localizacao/service/EnderecoService.java
new file mode 100644
index 0000000..1dd19e6
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/service/EnderecoService.java
@@ -0,0 +1,74 @@
+package br.com.imd.cadwork.core.localizacao.service;
+
+import java.util.List;
+import java.util.Optional;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.validation.BindingResult;
+
+import br.com.imd.cadwork.core.dao.GenericDAO;
+import br.com.imd.cadwork.core.localizacao.dao.EnderecoDAO;
+import br.com.imd.cadwork.core.localizacao.domain.Endereco;
+import br.com.imd.cadwork.core.service.GenericService;
+import br.com.imd.cadwork.core.service.exception.GenericServiceException;
+import br.com.imd.cadwork.core.service.exception.ResourceConflictException;
+/**
+ * Service para objetos da classe Endereco
+ * @author Welligton Miguel
+ *
+ */
+
+@Component
+public class EnderecoService extends GenericService {
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List listar() throws GenericServiceException {
+ return super.listar();
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void salvar(Endereco endereco, BindingResult resultado) throws GenericServiceException {
+ super.salvar(endereco, resultado);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Optional buscar(Long id) throws GenericServiceException {
+ return super.buscar(id);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Autowired
+ public void setDao(GenericDAO dao) {
+ super.dao = dao;
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void verificaExistencia(Endereco endereco) throws GenericServiceException {
+ if (buscaEnderecosLatLng(endereco.getLatitude(),endereco.getLongitude()).isPresent()){
+ throw new ResourceConflictException();
+ }
+ }
+
+ /**
+ * Função que busca um endereço baseado na latitude e longitude
+ * @param lat
+ * @param lng
+ * @return Optional - retorna o endereço caso exista
+ */
+ public Optional buscaEnderecosLatLng(Double lat, Double lng){
+ return ((EnderecoDAO) dao).findEnderecoByLatitudeAndLongitude(lat,lng);
+
+ }
+
+}
diff --git a/src/main/java/br/com/imd/cadeduc/localizacao/service/MunicipioService.java b/src/main/java/br/com/imd/cadwork/core/localizacao/service/MunicipioService.java
similarity index 54%
rename from src/main/java/br/com/imd/cadeduc/localizacao/service/MunicipioService.java
rename to src/main/java/br/com/imd/cadwork/core/localizacao/service/MunicipioService.java
index f167168..a89e33c 100644
--- a/src/main/java/br/com/imd/cadeduc/localizacao/service/MunicipioService.java
+++ b/src/main/java/br/com/imd/cadwork/core/localizacao/service/MunicipioService.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.localizacao.service;
+package br.com.imd.cadwork.core.localizacao.service;
import java.util.List;
import java.util.Optional;
@@ -7,45 +7,57 @@
import org.springframework.stereotype.Component;
import org.springframework.validation.BindingResult;
-import br.com.imd.cadeduc.core.dao.GenericDAO;
-import br.com.imd.cadeduc.core.service.GenericService;
-import br.com.imd.cadeduc.core.service.exception.GenericServiceException;
-import br.com.imd.cadeduc.core.service.exception.ResourceConflictException;
-import br.com.imd.cadeduc.localizacao.dao.MunicipioDAO;
-import br.com.imd.cadeduc.localizacao.domain.Municipio;
-
+import br.com.imd.cadwork.core.dao.GenericDAO;
+import br.com.imd.cadwork.core.localizacao.dao.MunicipioDAO;
+import br.com.imd.cadwork.core.localizacao.domain.Municipio;
+import br.com.imd.cadwork.core.service.GenericService;
+import br.com.imd.cadwork.core.service.exception.GenericServiceException;
+import br.com.imd.cadwork.core.service.exception.ResourceConflictException;
+/**
+ * Service para objetos da classe Endereco
+ * @author Welligton Miguel
+ *
+ */
@Component
public class MunicipioService extends GenericService {
-
+ /**
+ * {@inheritDoc}}
+ */
@Override
public List listar() throws GenericServiceException {
return super.listar();
}
-
+ /**
+ * {@inheritDoc}}
+ */
@Override
public void salvar(Municipio municipio, BindingResult resultado) throws GenericServiceException {
super.salvar(municipio, resultado);
}
-
+ /**
+ * {@inheritDoc}}
+ */
@Override
public Optional buscar(Long id) throws GenericServiceException {
return super.buscar(id);
}
-
+ /**
+ * {@inheritDoc}}
+ */
@Autowired
public void setDao(GenericDAO dao) {
super.dao = dao;
}
+ /**
+ * {@inheritDoc}}
+ */
@Override
protected void verificaExistencia(Municipio municipio) throws GenericServiceException {
- Optional municipioCadastrado = ((MunicipioDAO) dao)
- .findTop1MunicipioByNomeAndEstado(municipio.getNome(), municipio.getEstado().name());
-
- if(municipio.getId()!=0 || municipioCadastrado.isPresent()) {
+ if (((MunicipioDAO) dao).findTop1MunicipioByNomeAndEstado( municipio.getNome(),
+ municipio.getEstado().name()).isPresent()) {
throw new ResourceConflictException();
}
-
}
}
diff --git a/src/main/java/br/com/imd/cadwork/core/localizavel/dao/LocalizavelDAO.java b/src/main/java/br/com/imd/cadwork/core/localizavel/dao/LocalizavelDAO.java
new file mode 100644
index 0000000..39be06e
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/localizavel/dao/LocalizavelDAO.java
@@ -0,0 +1,22 @@
+package br.com.imd.cadwork.core.localizavel.dao;
+
+import java.util.Optional;
+
+import org.springframework.data.repository.NoRepositoryBean;
+import org.springframework.data.repository.query.Param;
+
+import br.com.imd.cadwork.core.dao.GenericDAO;
+import br.com.imd.cadwork.core.localizacao.domain.Endereco;
+import br.com.imd.cadwork.core.localizavel.model.CriterioLocalizacao;
+import br.com.imd.cadwork.core.localizavel.model.Localizavel;
+
+/**
+ * {@inheritDoc}}
+ */
+@NoRepositoryBean
+public interface LocalizavelDAO extends GenericDAO {
+
+ public Optional findByEndereco(@Param("endereco")Endereco endereco);
+
+ public Optional findByCriterioLocalizacao(@Param("criterio")CriterioLocalizacao criterio);
+}
diff --git a/src/main/java/br/com/imd/cadwork/core/localizavel/exception/CriterioException.java b/src/main/java/br/com/imd/cadwork/core/localizavel/exception/CriterioException.java
new file mode 100644
index 0000000..66ebe73
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/localizavel/exception/CriterioException.java
@@ -0,0 +1,16 @@
+package br.com.imd.cadwork.core.localizavel.exception;
+
+import br.com.imd.cadwork.core.dao.GenericDomainException;
+
+public class CriterioException extends GenericDomainException {
+
+ private static final long serialVersionUID = 1L;
+
+ public CriterioException() {
+ super("Erro gerado pelo critério!");
+ }
+
+ public CriterioException(String message) {
+ super(message);
+ }
+}
diff --git a/src/main/java/br/com/imd/cadwork/core/localizavel/model/CriterioLocalizacao.java b/src/main/java/br/com/imd/cadwork/core/localizavel/model/CriterioLocalizacao.java
new file mode 100644
index 0000000..4230db6
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/localizavel/model/CriterioLocalizacao.java
@@ -0,0 +1,78 @@
+package br.com.imd.cadwork.core.localizavel.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.Table;
+import javax.validation.constraints.NotNull;
+
+import br.com.imd.cadwork.core.dao.GenericDomainException;
+
+/**
+ * Classe abstrata para ser base do modelo do critério de localização
+ *
+ * @author Miguel
+ * @version 0.1
+ */
+@Entity
+@Table(name = "criterio", schema = "criterio")
+@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public abstract class CriterioLocalizacao {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ protected Long id;
+
+ @NotNull
+ @Column
+ protected String nome;
+
+ /**
+ * Método para retorno do id de uma instância de Etapa de Ensino
+ *
+ * @return Long - Valor do id
+ */
+ public Long getId() {
+ return id;
+ }
+
+ /**
+ * Altera o valor do id de uma instância de Etapa de Ensino
+ *
+ * @param id
+ * Long - Novo valor do id
+ */
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ /**
+ * Retorna o nome da etapa de ensino
+ *
+ * @return String - Nome da etapa de ensino
+ */
+ public String getNome() {
+ return nome;
+ }
+
+ /**
+ * Altera o nome da etapa de ensino
+ *
+ * @param nome
+ * String - Novo nome da etapa de ensino
+ */
+ public void setNome(String nome) {
+ this.nome = nome;
+ }
+
+ /**
+ * Método que será implementado pelas classes filhas com finalidade de limitar os possÃveis
+ * itens localizáveis
+ * @throws GenericDomainException
+ */
+ public abstract void validaCriterios() throws GenericDomainException;
+}
diff --git a/src/main/java/br/com/imd/cadwork/core/localizavel/model/Localizavel.java b/src/main/java/br/com/imd/cadwork/core/localizavel/model/Localizavel.java
new file mode 100644
index 0000000..36855ad
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/localizavel/model/Localizavel.java
@@ -0,0 +1,141 @@
+package br.com.imd.cadwork.core.localizavel.model;
+
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import javax.validation.constraints.NotNull;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import br.com.imd.cadwork.core.localizacao.domain.Endereco;
+import br.com.imd.cadwork.core.service.GoogleService;
+
+/**
+ * Classe abstrata para ser base do modelo do item localizavel
+ *
+ * @author Igor Barbosa Nogueira
+ * @author Miguel
+ * @version 0.2
+ */
+@Entity
+@Table(name = "localizavel", schema = "localizavel")
+@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public abstract class Localizavel {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ protected Long id;
+
+ @NotNull
+ @Column
+ protected String nome;
+
+ @NotNull
+ @OneToOne(cascade = CascadeType.REFRESH)
+ protected Endereco endereco;
+
+ @NotNull
+ @OneToMany(cascade = CascadeType.ALL)
+ @Autowired
+ protected List criterioLocalizacao;
+
+
+ @Transient
+ @Autowired
+ protected GoogleService google;
+ /**
+ * Retorna o endereço do localizavel
+ *
+ * @return Endereco - Endereço da escola
+ */
+ public Endereco getEndereco() {
+ return endereco;
+ }
+
+ /**
+ * Altera o endereço de uma instância de Localizavel
+ *
+ * @param endereco
+ * Endereco - Novo endereço
+ */
+ public void setEndereco(Endereco endereco) {
+ this.endereco = endereco;
+ }
+
+ /**
+ * Método para retorno do id de uma instância de Localizavel
+ *
+ * @return Long - Valor do id
+ */
+ public Long getId() {
+ return id;
+ }
+
+ /**
+ * Altera o valor do id de uma instância de Localizavel
+ *
+ * @param id
+ * Long - Novo valor do id
+ */
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ /**
+ * Método que retorna o nome do localizavel
+ *
+ * @return String - Nome do localizavel
+ */
+ public String getNome() {
+ return nome;
+ }
+
+ /**
+ * Método que modifica o nome do localizavel
+ *
+ * @param nome
+ * String - Novo nome do localizavel
+ */
+ public void setNome(String nome) {
+ this.nome = nome;
+ }
+
+ /**
+ * Método que retorna o critério de localização
+ *
+ * @return List - Critério para buscar o localizavel
+ */
+ public List getCriterioLocalizacao() {
+ return criterioLocalizacao;
+ }
+
+ /**
+ * Método que modifica o tipo de critério para buscar o localizavel
+ *
+ * @param criterioLocalizacao
+ * List - Novo critério para buscar o localizavel
+ */
+ public void setCriterioLocalizacao(List criterioLocalizacao) {
+ this.criterioLocalizacao = criterioLocalizacao;
+ }
+
+ /**
+ * Método que será implentado pelas classes filhas com finalidade
+ * de validar a existência do localizável
+ *
+ * @return boolean - Se o localizavel é válido ou não
+ */
+ public abstract boolean validaLocalizavel();
+
+}
\ No newline at end of file
diff --git a/src/main/java/br/com/imd/cadeduc/core/resources/CadeducResources.java b/src/main/java/br/com/imd/cadwork/core/resources/CadeducResources.java
similarity index 71%
rename from src/main/java/br/com/imd/cadeduc/core/resources/CadeducResources.java
rename to src/main/java/br/com/imd/cadwork/core/resources/CadeducResources.java
index 45142db..bc9f35a 100644
--- a/src/main/java/br/com/imd/cadeduc/core/resources/CadeducResources.java
+++ b/src/main/java/br/com/imd/cadwork/core/resources/CadeducResources.java
@@ -1,4 +1,4 @@
-package br.com.imd.cadeduc.core.resources;
+package br.com.imd.cadwork.core.resources;
import javax.servlet.http.HttpServletResponse;
@@ -6,11 +6,18 @@
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
-
+/**
+ * Classe para configurar resource principal
+ * @author Welligton Miguel
+ *
+ */
@ApiIgnore
@RestController
public class CadeducResources {
-
+ /**
+ * Redireciona para página inicial
+ * @param response HttpServletResponse
+ */
@GetMapping("/")
public void paginaInicial(HttpServletResponse response) {
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
diff --git a/src/main/java/br/com/imd/cadwork/core/service/GenericService.java b/src/main/java/br/com/imd/cadwork/core/service/GenericService.java
new file mode 100644
index 0000000..2f0fa7a
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/service/GenericService.java
@@ -0,0 +1,102 @@
+package br.com.imd.cadwork.core.service;
+
+import java.util.List;
+import java.util.Optional;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.BindingResult;
+
+import br.com.imd.cadwork.core.dao.GenericDAO;
+import br.com.imd.cadwork.core.service.exception.GenericServiceException;
+import br.com.imd.cadwork.core.service.exception.ResourceEmptyException;
+import br.com.imd.cadwork.core.service.exception.ResourceNotFoundException;
+import br.com.imd.cadwork.util.ValidatorUtil;
+
+/**
+ * Service genérico para objetos do framework
+ *
+ * @author Welligton Miguel
+ *
+ * @param
+ */
+@Service
+public abstract class GenericService {
+
+ protected GenericDAO dao;
+
+ @Autowired
+ protected GoogleService googleService;
+
+ /**
+ * Retorna uma lista de objetos
+ *
+ * @return List - lista de objetos
+ * @throws GenericServiceException
+ */
+ protected List listar() throws GenericServiceException {
+ List entidades = dao.findAll();
+
+ entidades.stream().findAny().orElseThrow(ResourceNotFoundException::new);
+
+ return entidades;
+ }
+
+ /**
+ * Procedimento para salvar um objeto
+ *
+ * @param t
+ * T - objeto para ser salvo
+ * @param resultado
+ * BindingResult - resultados da operação
+ * @throws GenericServiceException
+ */
+ protected void salvar(T t, BindingResult resultado) throws GenericServiceException {
+
+ if (resultado.hasErrors()) {
+ throw new ResourceEmptyException(ValidatorUtil.gerarErrorsInJson(resultado.getAllErrors()));
+ }
+ verificaExistencia(t);
+
+ try {
+
+ dao.save(t);
+
+ } catch (Exception e) {
+ throw new GenericServiceException(e.getMessage());
+ }
+
+ }
+
+ /**
+ * Busca um onjeto por um id passado
+ *
+ * @param id
+ * Long - busca um objeto pelo id
+ * @return Optional - retorna o objeto caso exista
+ * @throws GenericServiceException
+ */
+ protected Optional buscar(Long id) throws GenericServiceException {
+ T entidade = dao.findById(id).orElseThrow(ResourceNotFoundException::new);
+
+ return Optional.of(entidade);
+ }
+
+ /**
+ * Função abstrata que tem que ser injetada para setar o dao correto
+ *
+ * @param dao
+ * GenericDAO
+ */
+ protected abstract void setDao(GenericDAO dao);
+
+ /**
+ * Verifica a existência de um determinado objeto no BD
+ *
+ * @param t
+ * T - objeto passado
+ * @throws GenericServiceException
+ */
+ protected abstract void verificaExistencia(T t) throws GenericServiceException;
+
+}
diff --git a/src/main/java/br/com/imd/cadwork/core/service/GoogleService.java b/src/main/java/br/com/imd/cadwork/core/service/GoogleService.java
new file mode 100644
index 0000000..deec9db
--- /dev/null
+++ b/src/main/java/br/com/imd/cadwork/core/service/GoogleService.java
@@ -0,0 +1,112 @@
+package br.com.imd.cadwork.core.service;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+import br.com.imd.cadwork.core.service.exception.GenericServiceException;
+import br.com.imd.cadwork.util.GoogleValidator;
+import br.com.imd.cadwork.util.exception.ConvertLocalizavelException;
+import se.walkercrou.places.GooglePlaces;
+import se.walkercrou.places.Param;
+import se.walkercrou.places.Place;
+
+@Service
+public class GoogleService {
+
+ public static final String KEY = "AIzaSyD5SoFyhcb2eNCBW4PFwpt56BwMXWGDbHc";
+ public static final int RAIO_BUSCA = 500;
+ public static final int LIMITE_BUSCA = 20;
+ public static final int BUSCA_INDIVIDUAL = 1;
+
+ public static final String ESCOLA = "escola";
+ public static final String PARADA = "bus";
+
+ private GooglePlaces cliente;
+
+ public GoogleService() {
+ cliente = new GooglePlaces(KEY);
+ }
+
+ /**
+ * Busca especificamente o localizavel pertencente a latitude e longitude
+ * @param lat
+ * @param lng
+ * @param extraParams
+ * @return
+ * @throws GenericServiceException
+ * @throws ConvertLocalizavelException
+ */
+ public List