From 2dec1cc0e7f5f237f8fb0aa6a4e1752d5c59579b Mon Sep 17 00:00:00 2001 From: serban26 Date: Wed, 17 Sep 2025 21:50:16 +0200 Subject: [PATCH 1/5] issue 2 done --- .idea/.gitignore | 3 + .idea/Remindify.iml | 9 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + remindify-backend/data/remindify-new.mv.db | Bin 0 -> 32768 bytes remindify-backend/data/remindify.mv.db | Bin 0 -> 20480 bytes remindify-backend/data/remindify.trace.db | 319 ++++++++++++++++++ remindify-backend/pom.xml | 14 + .../java/masecla/remindify/dto/TaskDto.java | 5 + .../remindify/repository/TaskRepository.java | 7 + .../services/TaskConsumerService.java | 4 + .../src/main/resources/application.properties | 12 +- 13 files changed, 392 insertions(+), 1 deletion(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/Remindify.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 remindify-backend/data/remindify-new.mv.db create mode 100644 remindify-backend/data/remindify.mv.db create mode 100644 remindify-backend/data/remindify.trace.db create mode 100644 remindify-backend/src/main/java/masecla/remindify/repository/TaskRepository.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/Remindify.iml b/.idea/Remindify.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/Remindify.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..8e67e98 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/remindify-backend/data/remindify-new.mv.db b/remindify-backend/data/remindify-new.mv.db new file mode 100644 index 0000000000000000000000000000000000000000..5f11cbd5ff6856b1213bcb47fe0b06aea2b3cde4 GIT binary patch literal 32768 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 V#{VOM|Dz}{ZQCky_eET<{tq8UA_)Kh literal 0 HcmV?d00001 diff --git a/remindify-backend/data/remindify.mv.db b/remindify-backend/data/remindify.mv.db new file mode 100644 index 0000000000000000000000000000000000000000..78990272e211fe76b902921019c36000a8afc28b GIT binary patch literal 20480 zcmeHPO>^7E87AOLVpOYN)6C>ngt0BFLvw%y7GEb(BoncrD20Sv`=nVc7PiI|si7#v z>Zzx8roDBh)8vp#d+H^hPMpc1KOmR(C*%+GANbH03xEVEQqVYQ5@%KiEP;Ko`|JZ? z-+kV9?QIv8{oa5+a`m|E9{!HGnyRX0`tY>>$TeA+_895ATA2>|HB91KRT=EJT4Rn?q8Q_G{nBiJT@O@^#V>YtYT>~XXi zU^JkvjhOPy{lON3Yk$7hF33MG6g9#e%ygrOR15YZ*tDpt8uLTjF6xNbgoS2N5A6Us zx>dxss{4AVtzg?w9gP;TLrelU7I8=|-8amliJZ_dR3CnXp~XV@VPL{A3yLNQY|{zo zvh5?&af)_G5Jsv|WW;AGvWz0!X{m-|zcv^?s60fKqqCFIV8|+gUumEAdUr|hl-0?I zc<0CL`({&~!903gxf^feU;zgnfxhuNp)jKJn={5Rz|P?9bZDv7kCx*1_9{c2ZE*y> zRkqGYtU4T$^R(rwwDfJ-{2xeLT24OptBgaLc@CVl)}a3&B@E3Nz=LWH{4P90__%k- z@r|wC!0)h-4OySE8__eqbCp|m*obiJLP6eKenpagSy+Pkp@NqAk;H}1uj%}V`O)M@ ziyv)%boh}j_sJ2f99-uGV2TFtIc8=jI+!ZrQrdUT z-r}t$Aj^-~xtq=+A z2A7b(xG^&`26JZIXwGfPq$?rGkxa>!bO}pTvSdVLaw=L}pt!(sLH{NtUW+7K*YK40g0sUjw#Pjg;+~9eXNxZGfLk+Dx8@{n zjo6V}Lm_fd;?@il`d0b0e|o}#>S*%(C!UUQ7sqs39#DFEO#1X3w#EH31?DHf%qd`6 z23X`;AG-!%NpU64)`@+nm4c%YI293WWWbRGTgf&syRU_dY+7!V9xk%1Zg zJ>Er6C%fn!Bf!|UtZzVLjaQhkEQ`rk5*aIz|5@!AFR z6^G#jlYYMTFVO$;ru@gkjOd`T=m@x=_(6(}AV+irLUgFcl#se8I;e~SSf@U@rb`*o zK~vEYTt#%em#*z;vbIN4pNyVa+iT;fExmSHVMWbyvcO^qB6?B3phNB;Ve9Z%Z+&Y z04XyoH+oz>4)@f9|#=+KpvsG7+j!H^t?GI9XRoU-0I!g0(rM>GZ zjeE_m*HudG>Q1AibgL~-S=S9>F^bf{L6Gi8+Pbn`?QSdU8VQ(*O@r8&*o-0OJ3dxv zzzDPL(8nyaRR{EnMj=0A>yGb0&n7l(iY-US*1A%y?=;)D6lLvciltVqZ8z$QSKVqg zl+xb*R;yVnRZ3p9`{qI2+b!K*jmRlA>m_BY`9`ztan$YoR;wJ>)EnJer@7}fciSbU zwq5O1YaR^mZnbm2*?!|T!gwRK+;1Gzft4JysOv>0s~hXet83c{k9(cw4s@fu*|?v9 zo?JbEs|Q+1*==X)Cc}zGv~gRxx%M_t4tN(50G!p8+HSk+b*jK+~$od z&33(UFJnIqY(sf%Z9f@ExAE3~qg|W#01luI-V3kV@s!^-y=_HPI*rV!fi>s|+SzFU zxUKsNR^g@mukhvhqoLn~gt9Y&F0WoPa_VtTeV9}Kj+A5YZl1xHc?Qq&4BnS> zFno|_@L`_8M|lPx=NWvGXYeG?;L|*V&+-hOE;87OUnWAx(&vk8_Cl!U?_6Z|)s@V6 z+Wy(xv^~8_1nnPb1T9V5L(D9*=`5SJkF(=bY5Q?{JoZJGC+&G&d|sf6PU2{DQ~2RH zj+P(hi{og~F1a+!XH7ij^M&~`@aBg3;y79qlvA}iY5T=-G-)%Aqg{iA(!c-0S4+~L y{(JdbcConnection.java:124) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) + at org.hibernate.boot.model.relational.Database.(Database.java:45) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) + at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:522) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 57 more +2025-09-17 21:45:45.517166+02:00 database: wrong user or password; user: "USERNAME" +org.h2.message.DbException: Wrong user name or password [28000-232] + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.engine.Engine.openSession(Engine.java:154) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) + at org.hibernate.boot.model.relational.Database.(Database.java:45) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) + at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:522) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 57 more +2025-09-17 21:46:52.411529+02:00 database: wrong user or password; user: "SA" +org.h2.message.DbException: Wrong user name or password [28000-232] + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.engine.Engine.openSession(Engine.java:154) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) + at org.hibernate.boot.model.relational.Database.(Database.java:45) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) + at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:522) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 57 more +2025-09-17 21:48:13.953931+02:00 database: wrong user or password; user: "SA" +org.h2.message.DbException: Wrong user name or password [28000-232] + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.engine.Engine.openSession(Engine.java:154) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) + at org.hibernate.boot.model.relational.Database.(Database.java:45) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) + at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:522) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 57 more +2025-09-17 21:48:16.043377+02:00 database: wrong user or password; user: "SA" +org.h2.message.DbException: Wrong user name or password [28000-232] + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.engine.Engine.openSession(Engine.java:154) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124) + at org.h2.Driver.connect(Driver.java:59) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485) + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:46) + at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:39) + at org.hibernate.tool.schema.internal.exec.ImprovedExtractionContextImpl.getJdbcConnection(ImprovedExtractionContextImpl.java:63) + at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43) + at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:66) + at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.(DatabaseInformationImpl.java:60) + at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:185) + at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:93) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:280) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:144) + at java.base/java.util.HashMap.forEach(HashMap.java:1430) + at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:141) + at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37) + at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35) + at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:324) + at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:463) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1517) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) + at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) +Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:522) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) + ... 61 more diff --git a/remindify-backend/pom.xml b/remindify-backend/pom.xml index c6c3076..da0c7dc 100644 --- a/remindify-backend/pom.xml +++ b/remindify-backend/pom.xml @@ -57,6 +57,20 @@ jsoup 1.21.2 + + com.h2database + h2 + runtime + + + com.mysql + mysql-connector-j + runtime + + + org.springframework.boot + spring-boot-starter-data-jpa + diff --git a/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java b/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java index 7cf87d1..ff477b5 100644 --- a/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java +++ b/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java @@ -1,9 +1,14 @@ package masecla.remindify.dto; +import jakarta.persistence.*; import lombok.Data; @Data +@Entity public class TaskDto { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; private String task; private String description; private String dueDate; diff --git a/remindify-backend/src/main/java/masecla/remindify/repository/TaskRepository.java b/remindify-backend/src/main/java/masecla/remindify/repository/TaskRepository.java new file mode 100644 index 0000000..b85cd74 --- /dev/null +++ b/remindify-backend/src/main/java/masecla/remindify/repository/TaskRepository.java @@ -0,0 +1,7 @@ +package masecla.remindify.repository; + +import masecla.remindify.dto.TaskDto; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface TaskRepository extends JpaRepository { +} diff --git a/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java b/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java index 9131c3f..de30fff 100644 --- a/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java +++ b/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java @@ -2,6 +2,7 @@ import java.util.Map; +import masecla.remindify.repository.TaskRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,12 +17,15 @@ public class TaskConsumerService { private Map availableConsumers; + private final TaskRepository taskRepository; public void registerConsumer(String listType, TaskConsumer consumer) { availableConsumers.put(listType, consumer); } public void broadcastTask(TaskDto task){ + TaskDto persisted = task.getId() == null ? taskRepository.save(task) : task; + log.info("Task with id {} has been created.", persisted.getId()); for (TaskConsumer consumer : availableConsumers.values()) { try { consumer.sendTaskToList(task); diff --git a/remindify-backend/src/main/resources/application.properties b/remindify-backend/src/main/resources/application.properties index 137cec3..f839bde 100644 --- a/remindify-backend/src/main/resources/application.properties +++ b/remindify-backend/src/main/resources/application.properties @@ -1,2 +1,12 @@ spring.application.name=remindify -todoist.api.token=your_todoist_api_token_here \ No newline at end of file +todoist.api.token=your_todoist_api_token_here + +spring.datasource.url=jdbc:h2:file:./data/remindify-new +spring.datasource.driver-class-name=org.h2.Driver +spring.datasource.username=username +spring.datasource.password=password + +spring.jpa.hibernate.ddl-auto=update + +spring.h2.console.enabled=true +spring.h2.console.path=/h2-console From e61886a289fa4fc3df68f24174c2fba52d182e9e Mon Sep 17 00:00:00 2001 From: serban26 Date: Wed, 17 Sep 2025 22:00:56 +0200 Subject: [PATCH 2/5] issue 2 done --- remindify-backend/data/remindify-new.mv.db | Bin 32768 -> 32768 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/remindify-backend/data/remindify-new.mv.db b/remindify-backend/data/remindify-new.mv.db index 5f11cbd5ff6856b1213bcb47fe0b06aea2b3cde4..53bae10d1961a20d99e0fc2436c3ec8937354a25 100644 GIT binary patch literal 32768 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 V#{VOM|Dz}{ZQCky_eET<{tq8UA_)Kh From 731ca8d58ccd062734dc7effae9851405a410b93 Mon Sep 17 00:00:00 2001 From: serban26 Date: Wed, 17 Sep 2025 22:09:15 +0200 Subject: [PATCH 3/5] wops gitignor --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 4c49bd7..83e1433 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .env +remindify-new.mv.db \ No newline at end of file From f143dfc2fd21883986f966e8e2f792a8167cc636 Mon Sep 17 00:00:00 2001 From: serban26 Date: Wed, 17 Sep 2025 22:10:05 +0200 Subject: [PATCH 4/5] wops gitignor --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 83e1433..cb7b2f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ .env -remindify-new.mv.db \ No newline at end of file +*.db \ No newline at end of file From 4eb36e2cc63b8a14ea3184e8c747a901a85ede48 Mon Sep 17 00:00:00 2001 From: serban26 Date: Thu, 18 Sep 2025 12:29:44 +0200 Subject: [PATCH 5/5] task service --- .gitignore | 2 +- remindify-backend/data/remindify-new.mv.db | Bin 32768 -> 28672 bytes .../java/masecla/remindify/dto/TaskDto.java | 5 ++++- .../services/TaskConsumerService.java | 5 ++--- .../remindify/services/TaskService.java | 21 ++++++++++++++++++ 5 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 remindify-backend/src/main/java/masecla/remindify/services/TaskService.java diff --git a/.gitignore b/.gitignore index cb7b2f0..156fc15 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ .env -*.db \ No newline at end of file +*.db diff --git a/remindify-backend/data/remindify-new.mv.db b/remindify-backend/data/remindify-new.mv.db index 53bae10d1961a20d99e0fc2436c3ec8937354a25..239eb97393948a89819a9f30632bdcc7e6c074eb 100644 GIT binary patch literal 28672 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 DzOI%( literal 32768 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 availableConsumers; - private final TaskRepository taskRepository; + private TaskService taskService; public void registerConsumer(String listType, TaskConsumer consumer) { availableConsumers.put(listType, consumer); } public void broadcastTask(TaskDto task){ - TaskDto persisted = task.getId() == null ? taskRepository.save(task) : task; - log.info("Task with id {} has been created.", persisted.getId()); + taskService.saveTask(task); for (TaskConsumer consumer : availableConsumers.values()) { try { consumer.sendTaskToList(task); diff --git a/remindify-backend/src/main/java/masecla/remindify/services/TaskService.java b/remindify-backend/src/main/java/masecla/remindify/services/TaskService.java new file mode 100644 index 0000000..e1af915 --- /dev/null +++ b/remindify-backend/src/main/java/masecla/remindify/services/TaskService.java @@ -0,0 +1,21 @@ +package masecla.remindify.services; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import masecla.remindify.dto.TaskDto; +import masecla.remindify.repository.TaskRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@AllArgsConstructor(onConstructor_ = @Autowired) +public class TaskService { + + private TaskRepository taskRepository; + + public void saveTask(TaskDto task) { + TaskDto persisted = task.getId() == null ? taskRepository.save(task) : task; + log.info("Task with id {} has been created.", persisted.getId()); + } +}