From 52c160d48a86674447eaa4842c27b44d1f168264 Mon Sep 17 00:00:00 2001 From: Joseph Gonzales Date: Fri, 31 May 2024 19:56:24 -0500 Subject: [PATCH] Joseph Gonzales: Yape Code Challenge --- .../6.8/executionHistory/executionHistory.bin | Bin 0 -> 19610 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/6.8/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/6.8/fileHashes/fileHashes.bin | Bin 0 -> 18697 bytes .../.gradle/6.8/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes yape-challenge/.gradle/6.8/gc.properties | 0 .../.gradle/8.5/checksums/checksums.lock | Bin 0 -> 17 bytes .../.gradle/8.5/checksums/md5-checksums.bin | Bin 0 -> 38097 bytes .../.gradle/8.5/checksums/sha1-checksums.bin | Bin 0 -> 27083 bytes .../dependencies-accessors.lock | Bin 0 -> 17 bytes .../8.5/dependencies-accessors/gc.properties | 0 .../8.5/executionHistory/executionHistory.bin | Bin 0 -> 601205 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/8.5/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/8.5/fileHashes/fileHashes.bin | Bin 0 -> 26847 bytes .../.gradle/8.5/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../8.5/fileHashes/resourceHashesCache.bin | Bin 0 -> 24345 bytes yape-challenge/.gradle/8.5/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties | 2 + .../buildOutputCleanup/outputFiles.bin | Bin 0 -> 19577 bytes .../.gradle/checksums/checksums.lock | Bin 0 -> 17 bytes .../.gradle/configuration-cache/gc.properties | 0 yape-challenge/.gradle/file-system.probe | Bin 0 -> 8 bytes yape-challenge/.gradle/vcs-1/gc.properties | 0 yape-challenge/.idea/.gitignore | 8 + yape-challenge/.idea/compiler.xml | 16 ++ yape-challenge/.idea/gradle.xml | 19 ++ yape-challenge/.idea/jarRepositories.xml | 20 ++ .../.idea/libraries-with-intellij-classes.xml | 65 +++++ yape-challenge/.idea/misc.xml | 10 + yape-challenge/.idea/uiDesigner.xml | 124 +++++++++ yape-challenge/build.gradle | 3 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + yape-challenge/gradlew | 185 +++++++++++++ yape-challenge/gradlew.bat | 89 +++++++ yape-challenge/settings.gradle | 4 + .../yape-transaction-manager/.gitignore | 37 +++ .../yape-transaction-manager/build.gradle | 42 +++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../yape-transaction-manager/gradlew | 249 ++++++++++++++++++ .../yape-transaction-manager/gradlew.bat | 92 +++++++ .../yape-transaction-manager/settings.gradle | 1 + .../YapeTransactionManagerApplication.java | 25 ++ .../graphql/TransactionController.java | 21 ++ .../response/FindTransactionResponse.java | 17 ++ .../response/TransactionStatus.java | 12 + .../application/response/TransactionType.java | 11 + .../rest/TransactionManagerController.java | 37 +++ .../manager/domain/Transaction.java | 64 +++++ .../domain/contants/TransactionTypeEnum.java | 24 ++ .../event/CreateTransactionEventPort.java | 9 + .../repository/TransactionRepository.java | 15 ++ .../service/DomainTransactionService.java | 36 +++ .../domain/service/TransactionService.java | 12 + .../infrastructure/config/BeanConfig.java | 17 ++ .../config/DataStaxAstraProperties.java | 16 ++ .../config/KafkaTopicConfig.java | 20 ++ .../event/CreatedTransactionProducer.java | 31 +++ .../event/ValidatedTransactionConsumer.java | 21 ++ .../CassandraTransactionRepository.java | 40 +++ ...ingDataCassandraTransactionRepository.java | 15 ++ .../repository/TransactionEntity.java | 68 +++++ .../src/main/resources/application.properties | 32 +++ .../main/resources/graphql/schema.graphqls | 12 + .../secure-connect-yape-transaction.zip | Bin 0 -> 12329 bytes .../yape-transaction-validator/.gitignore | 37 +++ .../yape-transaction-validator/build.gradle | 37 +++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../yape-transaction-validator/gradlew | 249 ++++++++++++++++++ .../yape-transaction-validator/gradlew.bat | 92 +++++++ .../settings.gradle | 1 + .../YapeTransactionValidatorApplication.java | 13 + .../validator/domain/Transaction.java | 19 ++ .../event/ValidatedTransactionEventPort.java | 8 + .../service/DomainValidatorService.java | 25 ++ .../domain/service/ValidatorService.java | 9 + .../infrastructure/config/BeanConfig.java | 16 ++ .../config/KafkaTopicConfig.java | 20 ++ .../event/CreatedTransactionConsumer.java | 22 ++ .../event/ValidatedTransactionProducer.java | 30 +++ .../src/main/resources/application.properties | 15 ++ 85 files changed, 2133 insertions(+) create mode 100644 yape-challenge/.gradle/6.8/executionHistory/executionHistory.bin create mode 100644 yape-challenge/.gradle/6.8/executionHistory/executionHistory.lock create mode 100644 yape-challenge/.gradle/6.8/fileChanges/last-build.bin create mode 100644 yape-challenge/.gradle/6.8/fileHashes/fileHashes.bin create mode 100644 yape-challenge/.gradle/6.8/fileHashes/fileHashes.lock create mode 100644 yape-challenge/.gradle/6.8/gc.properties create mode 100644 yape-challenge/.gradle/8.5/checksums/checksums.lock create mode 100644 yape-challenge/.gradle/8.5/checksums/md5-checksums.bin create mode 100644 yape-challenge/.gradle/8.5/checksums/sha1-checksums.bin create mode 100644 yape-challenge/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock create mode 100644 yape-challenge/.gradle/8.5/dependencies-accessors/gc.properties create mode 100644 yape-challenge/.gradle/8.5/executionHistory/executionHistory.bin create mode 100644 yape-challenge/.gradle/8.5/executionHistory/executionHistory.lock create mode 100644 yape-challenge/.gradle/8.5/fileChanges/last-build.bin create mode 100644 yape-challenge/.gradle/8.5/fileHashes/fileHashes.bin create mode 100644 yape-challenge/.gradle/8.5/fileHashes/fileHashes.lock create mode 100644 yape-challenge/.gradle/8.5/fileHashes/resourceHashesCache.bin create mode 100644 yape-challenge/.gradle/8.5/gc.properties create mode 100644 yape-challenge/.gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 yape-challenge/.gradle/buildOutputCleanup/cache.properties create mode 100644 yape-challenge/.gradle/buildOutputCleanup/outputFiles.bin create mode 100644 yape-challenge/.gradle/checksums/checksums.lock create mode 100644 yape-challenge/.gradle/configuration-cache/gc.properties create mode 100644 yape-challenge/.gradle/file-system.probe create mode 100644 yape-challenge/.gradle/vcs-1/gc.properties create mode 100644 yape-challenge/.idea/.gitignore create mode 100644 yape-challenge/.idea/compiler.xml create mode 100644 yape-challenge/.idea/gradle.xml create mode 100644 yape-challenge/.idea/jarRepositories.xml create mode 100644 yape-challenge/.idea/libraries-with-intellij-classes.xml create mode 100644 yape-challenge/.idea/misc.xml create mode 100644 yape-challenge/.idea/uiDesigner.xml create mode 100644 yape-challenge/build.gradle create mode 100644 yape-challenge/gradle/wrapper/gradle-wrapper.jar create mode 100644 yape-challenge/gradle/wrapper/gradle-wrapper.properties create mode 100644 yape-challenge/gradlew create mode 100644 yape-challenge/gradlew.bat create mode 100644 yape-challenge/settings.gradle create mode 100644 yape-challenge/yape-transaction-manager/.gitignore create mode 100644 yape-challenge/yape-transaction-manager/build.gradle create mode 100644 yape-challenge/yape-transaction-manager/gradle/wrapper/gradle-wrapper.jar create mode 100644 yape-challenge/yape-transaction-manager/gradle/wrapper/gradle-wrapper.properties create mode 100644 yape-challenge/yape-transaction-manager/gradlew create mode 100644 yape-challenge/yape-transaction-manager/gradlew.bat create mode 100644 yape-challenge/yape-transaction-manager/settings.gradle create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/YapeTransactionManagerApplication.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/graphql/TransactionController.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/FindTransactionResponse.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionStatus.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionType.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/rest/TransactionManagerController.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/Transaction.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/contants/TransactionTypeEnum.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/event/CreateTransactionEventPort.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/repository/TransactionRepository.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/DomainTransactionService.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/TransactionService.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/BeanConfig.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/DataStaxAstraProperties.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/KafkaTopicConfig.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/CreatedTransactionProducer.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/ValidatedTransactionConsumer.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/CassandraTransactionRepository.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/SpringDataCassandraTransactionRepository.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/TransactionEntity.java create mode 100644 yape-challenge/yape-transaction-manager/src/main/resources/application.properties create mode 100644 yape-challenge/yape-transaction-manager/src/main/resources/graphql/schema.graphqls create mode 100644 yape-challenge/yape-transaction-manager/src/main/resources/secure-connect-yape-transaction.zip create mode 100644 yape-challenge/yape-transaction-validator/.gitignore create mode 100644 yape-challenge/yape-transaction-validator/build.gradle create mode 100644 yape-challenge/yape-transaction-validator/gradle/wrapper/gradle-wrapper.jar create mode 100644 yape-challenge/yape-transaction-validator/gradle/wrapper/gradle-wrapper.properties create mode 100644 yape-challenge/yape-transaction-validator/gradlew create mode 100644 yape-challenge/yape-transaction-validator/gradlew.bat create mode 100644 yape-challenge/yape-transaction-validator/settings.gradle create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/YapeTransactionValidatorApplication.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/Transaction.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/event/ValidatedTransactionEventPort.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/DomainValidatorService.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/ValidatorService.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/BeanConfig.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/KafkaTopicConfig.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/CreatedTransactionConsumer.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/ValidatedTransactionProducer.java create mode 100644 yape-challenge/yape-transaction-validator/src/main/resources/application.properties diff --git a/yape-challenge/.gradle/6.8/executionHistory/executionHistory.bin b/yape-challenge/.gradle/6.8/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..3ce5805d5616e54a1046cd6c96d32f5064658215 GIT binary patch literal 19610 zcmeI%Pe>F|90%|jcMFrE?H~w29TFmFXV?8_T8G@$Qp#G?t%!wbcILS|Htr5@X5H)% zQWAn?-+`HV%$xW7&il-~ zy=;hKN*v3%jak`>SDI)+00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##An?BkM2v|P zS(7O_SYS4GW*El3-Dt3GargOx9m995?wYFn{|EWAas7bRha&_a009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0{?=5 zmtpK-W3Msy+nHE%K)mc}m6{SQlH_aA65~&bq3xD};T{ZnShX_jYqh&iraHDl(4O zdqXpGQ=ZwG!ST6k{e%0y&YOXgFKqUkDoq)SMwf|}4Suz0!7GIs$Hdhy!NqXhgxK*FprrP|#X&-@NOI98O5&ilv=>)Ah*w9^LeP_2&Kizka=WpX)T15TRg24^bU0)shMU1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R;Ywz=XVrsV)=hs`HAbRUvvBWl`^TM8mUl4*|73 zQuMzcO!cqDjy^wLb^p-s&!1jLcZ#=HxEe@YwUO8rrpXHa&af0J}YeO zrz0v+*8dQchHDdcvOMG_#wNeA_iZz7YFj6s)fpmJn>fFV2kh>Qxv*|OWvAa(^jl?A JqIJtl`~alEepmni literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/6.8/fileHashes/fileHashes.lock b/yape-challenge/.gradle/6.8/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..32aeff3df109516438e02135fca03dc34d501929 GIT binary patch literal 17 UcmZSfzkTzrzhHbi0|c-E05s|Z5C8xG literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/6.8/gc.properties b/yape-challenge/.gradle/6.8/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/yape-challenge/.gradle/8.5/checksums/checksums.lock b/yape-challenge/.gradle/8.5/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..8db3239aa47027d5e57f3712d87fa86e97b0d575 GIT binary patch literal 17 VcmZSH7S0;U{L1wT0~jz_0stx<1F!%9 literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/8.5/checksums/md5-checksums.bin b/yape-challenge/.gradle/8.5/checksums/md5-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..1cc0ba67e65abbb6a93e54db66e3afe8ceed16d4 GIT binary patch literal 38097 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

Iyyl?<^kYS^l*00q1}uj|YztTi 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 literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/8.5/executionHistory/executionHistory.lock b/yape-challenge/.gradle/8.5/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..f56e9a30890737434a6c711a743b295cb658e493 GIT binary patch literal 17 UcmZRc-)9nZSJ;7{0Rr9v04S*g;{X5v literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/8.5/fileChanges/last-build.bin b/yape-challenge/.gradle/8.5/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/8.5/fileHashes/fileHashes.bin b/yape-challenge/.gradle/8.5/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..6beb20fd5e7eaacbe9fd0166117419734092b2fa GIT binary patch literal 26847 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 literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/buildOutputCleanup/cache.properties b/yape-challenge/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..05d71cb --- /dev/null +++ b/yape-challenge/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Fri May 31 01:27:20 PET 2024 +gradle.version=8.5 diff --git a/yape-challenge/.gradle/buildOutputCleanup/outputFiles.bin b/yape-challenge/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..6305d33238d048190198aba4cb94ee4ee66dae8f GIT binary patch literal 19577 zcmeI&drVVz6u|Kdif=$0R1l*iq9c(A2AhHrMM3QCy-FM~ZB(=&h!1=fh>s|W8v|uo z6G6d8>>7Ej%qj-0B7%zOhWM(WsED9M)F>LG1QkrB{?4gc?mvdi#4M)?<>u3K54Ybo z{fCBeocmxa+_*2dpKqrro?!IshraohT;wC>f&pDWuI@@f%9Bu-FGD}%vZ}wS zx3QMF@+^8@T6xs(5iL`}r=u6{eo^M}Y)Lrydi0XWj~DM-y)?{KC+&W7T)3>E^C)wE zJo<@g>iVV+>3f-r(dea7GxY~NL&9KB8~W*`mP6M^7QF$_xBGA6ZGCaZ_HUTqVfXuiF&B15!XBX$z44EET}d1LEU;${dh_1g_)TR4DqxQZy=`aJ;VjFt zGtBuW^p~FQQ9f>uijk zG$>%c7rM_oLxJo_gckNcL-)-LD(U0BX9{!vHM&AMe~xywsXurGdWb$$QC@7?1p61E zM+_IMuIh%>!Tu7vcil?3*Rk9id<^=$;`R@g&g1jJFQPB}=RsIv>_J!9KNNj2mwIDE zpc<}Ibhi7za81=UPk13!0{W5|r@4O?d1k<#EcDp86vb>+>u_*nYupa2!{qlGKjz{@ zd?4P>TpT;9xsbWA5`E=)b9H)=lMlEKeXXKjm`pYmKCe_ips(9Lp)EIC8vy%9qibvW z9j$oVF`Buu1s#8LoD+OTunD@S0#twsPys4H1*iZOpaN8Y3Qz$mKn17(6`%rCfC^9n zDnJFO02QDDRDcRl0V+TRr~nn90#twsPys4H1*iZOpaQlprP{ve>tOq_-MRcry5T#Q zZ+Fc-+x+d$l5UoY^!1X?{8!Smzx6d|NoS-YeHPN0p2_#Nxo6k&HD^g@q#|wjdFB(^ Cog{?- literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/checksums/checksums.lock b/yape-challenge/.gradle/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..627aebd51811a89604636a29b5e131f33a93bfe9 GIT binary patch literal 17 TcmZQ(+VnljBzkc%0~7!NEvN&o literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/configuration-cache/gc.properties b/yape-challenge/.gradle/configuration-cache/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/yape-challenge/.gradle/file-system.probe b/yape-challenge/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..7aca2b0b312bb912d684ff7719d261e8cf6f1c60 GIT binary patch literal 8 PcmZQzVC=tO?fM)52s;AE literal 0 HcmV?d00001 diff --git a/yape-challenge/.gradle/vcs-1/gc.properties b/yape-challenge/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/yape-challenge/.idea/.gitignore b/yape-challenge/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/yape-challenge/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/yape-challenge/.idea/compiler.xml b/yape-challenge/.idea/compiler.xml new file mode 100644 index 0000000..bf60b75 --- /dev/null +++ b/yape-challenge/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yape-challenge/.idea/gradle.xml b/yape-challenge/.idea/gradle.xml new file mode 100644 index 0000000..0794f40 --- /dev/null +++ b/yape-challenge/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/yape-challenge/.idea/jarRepositories.xml b/yape-challenge/.idea/jarRepositories.xml new file mode 100644 index 0000000..fdc392f --- /dev/null +++ b/yape-challenge/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/yape-challenge/.idea/libraries-with-intellij-classes.xml b/yape-challenge/.idea/libraries-with-intellij-classes.xml new file mode 100644 index 0000000..9fa3156 --- /dev/null +++ b/yape-challenge/.idea/libraries-with-intellij-classes.xml @@ -0,0 +1,65 @@ + + + + + + \ No newline at end of file diff --git a/yape-challenge/.idea/misc.xml b/yape-challenge/.idea/misc.xml new file mode 100644 index 0000000..7134f89 --- /dev/null +++ b/yape-challenge/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/yape-challenge/.idea/uiDesigner.xml b/yape-challenge/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/yape-challenge/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yape-challenge/build.gradle b/yape-challenge/build.gradle new file mode 100644 index 0000000..35aa4f9 --- /dev/null +++ b/yape-challenge/build.gradle @@ -0,0 +1,3 @@ +group 'com.yape' +version '1.0-SNAPSHOT' + diff --git a/yape-challenge/gradle/wrapper/gradle-wrapper.jar b/yape-challenge/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/yape-challenge/gradle/wrapper/gradle-wrapper.properties b/yape-challenge/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a595206 --- /dev/null +++ b/yape-challenge/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/yape-challenge/gradlew b/yape-challenge/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/yape-challenge/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/yape-challenge/gradlew.bat b/yape-challenge/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/yape-challenge/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/yape-challenge/settings.gradle b/yape-challenge/settings.gradle new file mode 100644 index 0000000..a507532 --- /dev/null +++ b/yape-challenge/settings.gradle @@ -0,0 +1,4 @@ +rootProject.name = 'yape-challenge' +include 'yape-transaction-manager' +include 'yape-transaction-validator' + diff --git a/yape-challenge/yape-transaction-manager/.gitignore b/yape-challenge/yape-transaction-manager/.gitignore new file mode 100644 index 0000000..c2065bc --- /dev/null +++ b/yape-challenge/yape-transaction-manager/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/yape-challenge/yape-transaction-manager/build.gradle b/yape-challenge/yape-transaction-manager/build.gradle new file mode 100644 index 0000000..7d7ad15 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/build.gradle @@ -0,0 +1,42 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.3.0' + id 'io.spring.dependency-management' version '1.1.5' +} + +group = 'com.yape' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '21' +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { + + implementation 'org.springframework.boot:spring-boot-starter-graphql' + implementation 'com.graphql-java:graphql-java-extended-scalars:21.0' + implementation 'jakarta.validation:jakarta.validation-api:3.1.0' + implementation 'org.springframework.boot:spring-boot-starter-data-cassandra' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.kafka:spring-kafka' + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.graphql:spring-graphql-test' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework.kafka:spring-kafka-test' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/yape-challenge/yape-transaction-manager/gradle/wrapper/gradle-wrapper.jar b/yape-challenge/yape-transaction-manager/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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

NnX)EH+Nua)3Y(c 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/yape-challenge/yape-transaction-manager/gradlew.bat b/yape-challenge/yape-transaction-manager/gradlew.bat new file mode 100644 index 0000000..25da30d --- /dev/null +++ b/yape-challenge/yape-transaction-manager/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/yape-challenge/yape-transaction-manager/settings.gradle b/yape-challenge/yape-transaction-manager/settings.gradle new file mode 100644 index 0000000..aa90877 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'yape-transaction-manager' diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/YapeTransactionManagerApplication.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/YapeTransactionManagerApplication.java new file mode 100644 index 0000000..1c35408 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/YapeTransactionManagerApplication.java @@ -0,0 +1,25 @@ +package com.yape.transaction.manager; + +import com.yape.transaction.manager.infrastructure.config.DataStaxAstraProperties; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.cassandra.CqlSessionBuilderCustomizer; +import org.springframework.boot.context.properties.ConfigurationPropertiesScan; +import org.springframework.context.annotation.Bean; + +import java.nio.file.Path; + +@ConfigurationPropertiesScan +@SpringBootApplication +public class YapeTransactionManagerApplication { + + public static void main(String[] args) { + SpringApplication.run(YapeTransactionManagerApplication.class, args); + } + + @Bean + public CqlSessionBuilderCustomizer sessionBuilderCustomizer(DataStaxAstraProperties astraProperties) { + Path bundle = astraProperties.getSecureConnectBundle().toPath(); + return builder -> builder.withCloudSecureConnectBundle(bundle); + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/graphql/TransactionController.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/graphql/TransactionController.java new file mode 100644 index 0000000..02bb3e0 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/graphql/TransactionController.java @@ -0,0 +1,21 @@ +package com.yape.transaction.manager.application.graphql; + +import com.yape.transaction.manager.domain.Transaction; +import com.yape.transaction.manager.domain.repository.TransactionRepository; +import org.springframework.graphql.data.method.annotation.QueryMapping; +import org.springframework.stereotype.Controller; + +@Controller +public class TransactionController { + + private final TransactionRepository repository; + + public TransactionController(TransactionRepository repository) { + this.repository = repository; + } + + @QueryMapping + Iterable transactions() { + return repository.findAll(); + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/FindTransactionResponse.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/FindTransactionResponse.java new file mode 100644 index 0000000..d542416 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/FindTransactionResponse.java @@ -0,0 +1,17 @@ +package com.yape.transaction.manager.application.response; + +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; + +@Data +public class FindTransactionResponse { + + String transactionExternalId; + TransactionType transactionType; + TransactionStatus transactionStatus; + double value; + Date createAt; +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionStatus.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionStatus.java new file mode 100644 index 0000000..ecec2d5 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionStatus.java @@ -0,0 +1,12 @@ +package com.yape.transaction.manager.application.response; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class TransactionStatus { + + String name; +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionType.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionType.java new file mode 100644 index 0000000..be492fe --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/response/TransactionType.java @@ -0,0 +1,11 @@ +package com.yape.transaction.manager.application.response; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class TransactionType { + + String name; +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/rest/TransactionManagerController.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/rest/TransactionManagerController.java new file mode 100644 index 0000000..f251d49 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/application/rest/TransactionManagerController.java @@ -0,0 +1,37 @@ +package com.yape.transaction.manager.application.rest; + +import com.yape.transaction.manager.application.response.FindTransactionResponse; +import com.yape.transaction.manager.domain.Transaction; +import com.yape.transaction.manager.domain.service.TransactionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/yape/transaction/v1") +public class TransactionManagerController { + + private final TransactionService service; + + @Autowired + public TransactionManagerController(TransactionService service) { + this.service = service; + } + + @PostMapping("/create") + public ResponseEntity create(@RequestBody Transaction request) { + + return ResponseEntity.ok().body(service.createTransaction(request).toRestFindResponse()); + } + + @GetMapping("/{externalId}") + public ResponseEntity> find(@PathVariable String externalId) { + + List transaction = service.findTransactionsByExternalId(externalId); + + return ResponseEntity.ok().body(transaction.stream().map(Transaction::toRestFindResponse).collect(Collectors.toList())); + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/Transaction.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/Transaction.java new file mode 100644 index 0000000..faebf10 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/Transaction.java @@ -0,0 +1,64 @@ +package com.yape.transaction.manager.domain; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yape.transaction.manager.application.response.FindTransactionResponse; +import com.yape.transaction.manager.application.response.TransactionStatus; +import com.yape.transaction.manager.application.response.TransactionType; +import com.yape.transaction.manager.domain.contants.TransactionTypeEnum; +import lombok.Getter; + +import java.util.Date; + +@Getter +public class Transaction { + + private String internalId; + private String transactionExternalId; + private int transferTypeId; + private String status; + private double value; + private Date createdAt; + + @JsonCreator + public Transaction(@JsonProperty("accountExternalIdDebit") final String accountExternalIdDebit, + @JsonProperty("accountExternalIdCredit") final String accountExternalIdCredit, + @JsonProperty("tranferTypeId") final int tranferTypeId, + @JsonProperty("value") double value) { + + if (accountExternalIdDebit != null) { + this.transactionExternalId = accountExternalIdDebit; + } else if (accountExternalIdCredit != null) { + this.transactionExternalId = accountExternalIdCredit; + } + + this.transferTypeId = tranferTypeId; + this.value = value; + this.status = "PENDING"; + this.createdAt = new Date(); + } + public Transaction(String internalId, + String transactionExternalId, + int transferTypeId, + String status, + double value, + Date createdAt) { + this.internalId = internalId; + this.transactionExternalId = transactionExternalId; + this.transferTypeId = transferTypeId; + this.status = status; + this.value = value; + this.createdAt = createdAt; + } + + public FindTransactionResponse toRestFindResponse() { + + FindTransactionResponse response = new FindTransactionResponse(); + response.setTransactionExternalId(transactionExternalId); + response.setTransactionStatus(new TransactionStatus(status)); + response.setTransactionType(new TransactionType(TransactionTypeEnum.valueOf(transferTypeId).description)); + response.setValue(value); + response.setCreateAt(createdAt); + return response; + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/contants/TransactionTypeEnum.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/contants/TransactionTypeEnum.java new file mode 100644 index 0000000..b7525f5 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/contants/TransactionTypeEnum.java @@ -0,0 +1,24 @@ +package com.yape.transaction.manager.domain.contants; + +public enum TransactionTypeEnum { + PAYMENT(1, "PAYMENT"), + TRANSACTION(2, "TRANSACTION"); + + public final int id; + public final String description; + + TransactionTypeEnum(int id, String description) { + this.id = id; + this.description = description; + } + + public static TransactionTypeEnum valueOf (int id){ + for(TransactionTypeEnum e : values()) { + if(e.id == id) { + return e; + } + } + + return null; + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/event/CreateTransactionEventPort.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/event/CreateTransactionEventPort.java new file mode 100644 index 0000000..082d18a --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/event/CreateTransactionEventPort.java @@ -0,0 +1,9 @@ +package com.yape.transaction.manager.domain.event; + +import com.yape.transaction.manager.domain.Transaction; + +public interface CreateTransactionEventPort { + + void sendCreateTransactionEvent (Transaction transaction); + +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/repository/TransactionRepository.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/repository/TransactionRepository.java new file mode 100644 index 0000000..ba7ed3e --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/repository/TransactionRepository.java @@ -0,0 +1,15 @@ +package com.yape.transaction.manager.domain.repository; + +import com.yape.transaction.manager.domain.Transaction; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface TransactionRepository { + + List findByExternalId(UUID id); + Iterable findAll(); + Transaction save(Transaction transaction); + +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/DomainTransactionService.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/DomainTransactionService.java new file mode 100644 index 0000000..1dbfe0e --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/DomainTransactionService.java @@ -0,0 +1,36 @@ +package com.yape.transaction.manager.domain.service; + +import com.yape.transaction.manager.domain.Transaction; +import com.yape.transaction.manager.domain.event.CreateTransactionEventPort; +import com.yape.transaction.manager.domain.repository.TransactionRepository; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class DomainTransactionService implements TransactionService { + + private final TransactionRepository repository; + private final CreateTransactionEventPort port; + + public DomainTransactionService(TransactionRepository repository, CreateTransactionEventPort port) { + this.repository = repository; + this.port = port; + } + + @Override + public Transaction createTransaction(Transaction transaction) { + + Transaction registeredTransaction = repository.save(transaction); + + port.sendCreateTransactionEvent(registeredTransaction); + + return registeredTransaction; + } + + @Override + public List findTransactionsByExternalId(String externalId) { + return repository.findByExternalId(UUID.fromString(externalId)); + } + +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/TransactionService.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/TransactionService.java new file mode 100644 index 0000000..1942d78 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/domain/service/TransactionService.java @@ -0,0 +1,12 @@ +package com.yape.transaction.manager.domain.service; + +import com.yape.transaction.manager.domain.Transaction; + +import java.util.List; +import java.util.Optional; + +public interface TransactionService { + + Transaction createTransaction (Transaction transaction); + List findTransactionsByExternalId (String externalId); +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/BeanConfig.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/BeanConfig.java new file mode 100644 index 0000000..fcbbcde --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/BeanConfig.java @@ -0,0 +1,17 @@ +package com.yape.transaction.manager.infrastructure.config; + +import com.yape.transaction.manager.domain.event.CreateTransactionEventPort; +import com.yape.transaction.manager.domain.repository.TransactionRepository; +import com.yape.transaction.manager.domain.service.DomainTransactionService; +import com.yape.transaction.manager.domain.service.TransactionService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class BeanConfig { + + @Bean + TransactionService DomainTransactionService(TransactionRepository repository, CreateTransactionEventPort port) { + return new DomainTransactionService(repository, port); + } +} \ No newline at end of file diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/DataStaxAstraProperties.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/DataStaxAstraProperties.java new file mode 100644 index 0000000..3673bb4 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/DataStaxAstraProperties.java @@ -0,0 +1,16 @@ +package com.yape.transaction.manager.infrastructure.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; + +import java.io.File; + +@Getter +@Setter +@ConfigurationProperties("datastax.astra") +public class DataStaxAstraProperties { + + private File secureConnectBundle; + +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/KafkaTopicConfig.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/KafkaTopicConfig.java new file mode 100644 index 0000000..450c621 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/config/KafkaTopicConfig.java @@ -0,0 +1,20 @@ +package com.yape.transaction.manager.infrastructure.config; + +import org.apache.kafka.clients.admin.NewTopic; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.kafka.config.TopicBuilder; + +@Configuration +public class KafkaTopicConfig { + + @Bean + public NewTopic createdTransactionTopic() { + return TopicBuilder.name("createdTransactionTopic").build(); + } + + @Bean + public NewTopic validatedTransactionTopic() { + return TopicBuilder.name("validatedTransactionTopic").build(); + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/CreatedTransactionProducer.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/CreatedTransactionProducer.java new file mode 100644 index 0000000..11c7efa --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/CreatedTransactionProducer.java @@ -0,0 +1,31 @@ +package com.yape.transaction.manager.infrastructure.event; + +import com.yape.transaction.manager.domain.Transaction; +import com.yape.transaction.manager.domain.event.CreateTransactionEventPort; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.kafka.support.KafkaHeaders; +import org.springframework.messaging.Message; +import org.springframework.messaging.support.MessageBuilder; +import org.springframework.stereotype.Service; + +@Service +public class CreatedTransactionProducer implements CreateTransactionEventPort { + + private KafkaTemplate kafkaTemplate; + + public CreatedTransactionProducer(KafkaTemplate kafkaTemplate) { + this.kafkaTemplate = kafkaTemplate; + } + + @Override + public void sendCreateTransactionEvent(Transaction transaction) { + + Message transactionMessage = MessageBuilder + .withPayload(transaction) + .setHeader(KafkaHeaders.TOPIC, "createdTransactionTopic") + .build(); + + kafkaTemplate.send(transactionMessage); + + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/ValidatedTransactionConsumer.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/ValidatedTransactionConsumer.java new file mode 100644 index 0000000..f2a32a2 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/event/ValidatedTransactionConsumer.java @@ -0,0 +1,21 @@ +package com.yape.transaction.manager.infrastructure.event; + +import com.yape.transaction.manager.domain.Transaction; +import com.yape.transaction.manager.domain.repository.TransactionRepository; +import org.springframework.kafka.annotation.KafkaListener; +import org.springframework.stereotype.Service; + +@Service +public class ValidatedTransactionConsumer { + + private final TransactionRepository repository; + + public ValidatedTransactionConsumer(TransactionRepository repository) { + this.repository = repository; + } + + @KafkaListener(topics = "validatedTransactionTopic", groupId = "managerConsumerGroup") + public void consume(Transaction event) { + repository.save(event); + } +} \ No newline at end of file diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/CassandraTransactionRepository.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/CassandraTransactionRepository.java new file mode 100644 index 0000000..61556a7 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/CassandraTransactionRepository.java @@ -0,0 +1,40 @@ +package com.yape.transaction.manager.infrastructure.repository; + +import com.yape.transaction.manager.domain.Transaction; +import com.yape.transaction.manager.domain.repository.TransactionRepository; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.UUID; +import java.util.stream.Collectors; + +@Component +public class CassandraTransactionRepository implements TransactionRepository { + + private final SpringDataCassandraTransactionRepository repository; + + public CassandraTransactionRepository(SpringDataCassandraTransactionRepository repository) { + this.repository = repository; + } + + @Override + public List findByExternalId(UUID id) { + return repository.findByExternalId(id) + .stream() + .map(TransactionEntity::toDomainTransaction) + .collect(Collectors.toList()); + } + + @Override + public Iterable findAll() { + + List transactions = repository.findAll(); + + return transactions.stream().map(TransactionEntity::toDomainTransaction).collect(Collectors.toList()); + } + + @Override + public Transaction save(Transaction transaction) { + return repository.save(new TransactionEntity(transaction)).toDomainTransaction(); + } +} diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/SpringDataCassandraTransactionRepository.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/SpringDataCassandraTransactionRepository.java new file mode 100644 index 0000000..6865ce2 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/SpringDataCassandraTransactionRepository.java @@ -0,0 +1,15 @@ +package com.yape.transaction.manager.infrastructure.repository; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +import com.yape.transaction.manager.domain.Transaction; +import org.springframework.data.cassandra.repository.CassandraRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface SpringDataCassandraTransactionRepository extends CassandraRepository { + + List findByExternalId(UUID externalId); +} \ No newline at end of file diff --git a/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/TransactionEntity.java b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/TransactionEntity.java new file mode 100644 index 0000000..f454d62 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/java/com/yape/transaction/manager/infrastructure/repository/TransactionEntity.java @@ -0,0 +1,68 @@ +package com.yape.transaction.manager.infrastructure.repository; + +import com.yape.transaction.manager.application.response.FindTransactionResponse; +import com.yape.transaction.manager.application.response.TransactionStatus; +import com.yape.transaction.manager.application.response.TransactionType; +import com.yape.transaction.manager.domain.Transaction; +import com.yape.transaction.manager.domain.contants.TransactionTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.cassandra.core.cql.PrimaryKeyType; +import org.springframework.data.cassandra.core.mapping.*; + +import java.util.Date; +import java.util.UUID; + +@Data +@NoArgsConstructor +@Table(value = "transaction") +public class TransactionEntity { + + @Id + @PrimaryKeyColumn(name = "transaction_id", ordinal = 0, type = PrimaryKeyType.PARTITIONED) + @CassandraType(type = CassandraType.Name.UUID) + private UUID id; + + @Indexed + @Column("external_id") + @CassandraType(type = CassandraType.Name.UUID) + private UUID externalId; + + @Column("type") + @CassandraType(type = CassandraType.Name.TEXT) + private int transferTypeId; + + @Column("status") + @CassandraType(type = CassandraType.Name.TEXT) + private String status; + + @Column("value") + @CassandraType(type = CassandraType.Name.DOUBLE) + private double value; + + @Column("created_date") + @CassandraType(type = CassandraType.Name.TIMESTAMP) + private Date createdAt; + + public TransactionEntity(Transaction transaction){ + + if(transaction.getInternalId() != null){ + this.id = UUID.fromString(transaction.getInternalId()); + } + else { + this.id = UUID.randomUUID(); + } + + this.externalId = UUID.fromString(transaction.getTransactionExternalId()); + this.transferTypeId = transaction.getTransferTypeId(); + this.status = transaction.getStatus(); + this.value = transaction.getValue(); + this.createdAt = transaction.getCreatedAt(); + } + + Transaction toDomainTransaction() { + return new Transaction(id.toString(), externalId.toString(), transferTypeId, status, value, createdAt); + } +} \ No newline at end of file diff --git a/yape-challenge/yape-transaction-manager/src/main/resources/application.properties b/yape-challenge/yape-transaction-manager/src/main/resources/application.properties new file mode 100644 index 0000000..633b17f --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/resources/application.properties @@ -0,0 +1,32 @@ +spring.application.name=yape-transaction-manager +server.port=8081 + +spring.kafka.consumer.bootstrap-servers=localhost:9092 +spring.kafka.consumer.group-id=managerConsumerGroup +spring.kafka.consumer.auto-offset-reset=earliest +spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer +spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer +spring.kafka.consumer.properties.spring.json.trusted.packages=* +spring.kafka.consumer.properties.spring.json.type.mapping=com.yape.transaction.validator.domain.Transaction:com.yape.transaction.manager.domain.Transaction + +spring.kafka.producer.bootstrap-servers=localhost:9092 +spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer +spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer + +spring.cassandra.keyspace-name=yape +spring.cassandra.username=ftkvUskglmcIysGsdFwNOYJj +spring.cassandra.password=XKyy4bGi427Isdvt3WLG4cj5I.6,knwmy,76Ir+fDvl2M+crDGApAImur_1fBp7virPynK-NoMMlDw_-CFpZJ1f24qzKlBuxvoDcfwxK10SK-02,fc3jMSYqgUjzb08A + +spring.cassandra.schema-action=create_if_not_exists +spring.cassandra.request.timeout=10s +spring.cassandra.connection.connect-timeout=10s +spring.cassandra.connection.init-query-timeout=10s + +datastax.astra.secure-connect-bundle=classpath:secure-connect-yape-transaction.zip + +astra.db.id=67f3333b-d996-4bf6-921a-9dc6c79baa96 +astra.db.region=us-east-2 +astra.db.keyspace=yape +astra.db.application.token=AstraCS:ftkvUskglmcIysGsdFwNOYJj:3ee75b7df70cb6cc9e7b3e404c7753db97530a6da13d43613debf4f111a3f9eb + +spring.graphql.graphiql.enabled=true \ No newline at end of file diff --git a/yape-challenge/yape-transaction-manager/src/main/resources/graphql/schema.graphqls b/yape-challenge/yape-transaction-manager/src/main/resources/graphql/schema.graphqls new file mode 100644 index 0000000..ef42e16 --- /dev/null +++ b/yape-challenge/yape-transaction-manager/src/main/resources/graphql/schema.graphqls @@ -0,0 +1,12 @@ +type Query{ + transactions: [Transaction] +} + +type Transaction { + + internalId: ID!, + transferTypeId: Int!, + status: String!, + value: Float! + +} \ No newline at end of file diff --git a/yape-challenge/yape-transaction-manager/src/main/resources/secure-connect-yape-transaction.zip b/yape-challenge/yape-transaction-manager/src/main/resources/secure-connect-yape-transaction.zip new file mode 100644 index 0000000000000000000000000000000000000000..aee2b9314dfe451b4ca02bcfbfa76dc2fac06c17 GIT binary patch literal 12329 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 ee{JD^C=POx;J+zonfal+T4J^7pcmD?&@W8GB literal 0 HcmV?d00001 diff --git a/yape-challenge/yape-transaction-validator/.gitignore b/yape-challenge/yape-transaction-validator/.gitignore new file mode 100644 index 0000000..c2065bc --- /dev/null +++ b/yape-challenge/yape-transaction-validator/.gitignore @@ -0,0 +1,37 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ diff --git a/yape-challenge/yape-transaction-validator/build.gradle b/yape-challenge/yape-transaction-validator/build.gradle new file mode 100644 index 0000000..563e637 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/build.gradle @@ -0,0 +1,37 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.3.0' + id 'io.spring.dependency-management' version '1.1.5' +} + +group = 'com.yape' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '21' +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-cassandra' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.kafka:spring-kafka' + compileOnly 'org.projectlombok:lombok' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework.kafka:spring-kafka-test' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/yape-challenge/yape-transaction-validator/gradle/wrapper/gradle-wrapper.jar b/yape-challenge/yape-transaction-validator/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 zcma&N1CXTcmMvW9vTb(Rwr$&4wr$(C?dmSu>@vG-+vuvg^_??!{yS%8zW-#zn-LkA z5&1^$^{lnmUON?}LBF8_K|(?T0Ra(xUH{($5eN!MR#ZihR#HxkUPe+_R8Cn`RRs(P z_^*#_XlXmGv7!4;*Y%p4nw?{bNp@UZHv1?Um8r6)Fei3p@ClJn0ECfg1hkeuUU@Or zDaPa;U3fE=3L}DooL;8f;P0ipPt0Z~9P0)lbStMS)ag54=uL9ia-Lm3nh|@(Y?B`; zx_#arJIpXH!U{fbCbI^17}6Ri*H<>OLR%c|^mh8+)*h~K8Z!9)DPf zR2h?lbDZQ`p9P;&DQ4F0sur@TMa!Y}S8irn(%d-gi0*WxxCSk*A?3lGh=gcYN?FGl z7D=Js!i~0=u3rox^eO3i@$0=n{K1lPNU zwmfjRVmLOCRfe=seV&P*1Iq=^i`502keY8Uy-WNPwVNNtJFx?IwAyRPZo2Wo1+S(xF37LJZ~%i)kpFQ3Fw=mXfd@>%+)RpYQLnr}B~~zoof(JVm^^&f zxKV^+3D3$A1G;qh4gPVjhrC8e(VYUHv#dy^)(RoUFM?o%W-EHxufuWf(l*@-l+7vt z=l`qmR56K~F|v<^Pd*p~1_y^P0P^aPC##d8+HqX4IR1gu+7w#~TBFphJxF)T$2WEa zxa?H&6=Qe7d(#tha?_1uQys2KtHQ{)Qco)qwGjrdNL7thd^G5i8Os)CHqc>iOidS} z%nFEDdm=GXBw=yXe1W-ShHHFb?Cc70+$W~z_+}nAoHFYI1MV1wZegw*0y^tC*s%3h zhD3tN8b=Gv&rj}!SUM6|ajSPp*58KR7MPpI{oAJCtY~JECm)*m_x>AZEu>DFgUcby z1Qaw8lU4jZpQ_$;*7RME+gq1KySGG#Wql>aL~k9tLrSO()LWn*q&YxHEuzmwd1?aAtI zBJ>P=&$=l1efe1CDU;`Fd+_;&wI07?V0aAIgc(!{a z0Jg6Y=inXc3^n!U0Atk`iCFIQooHqcWhO(qrieUOW8X(x?(RD}iYDLMjSwffH2~tB z)oDgNBLB^AJBM1M^c5HdRx6fBfka`(LD-qrlh5jqH~);#nw|iyp)()xVYak3;Ybik z0j`(+69aK*B>)e_p%=wu8XC&9e{AO4c~O1U`5X9}?0mrd*m$_EUek{R?DNSh(=br# z#Q61gBzEpmy`$pA*6!87 zSDD+=@fTY7<4A?GLqpA?Pb2z$pbCc4B4zL{BeZ?F-8`s$?>*lXXtn*NC61>|*w7J* z$?!iB{6R-0=KFmyp1nnEmLsA-H0a6l+1uaH^g%c(p{iT&YFrbQ$&PRb8Up#X3@Zsk zD^^&LK~111%cqlP%!_gFNa^dTYT?rhkGl}5=fL{a`UViaXWI$k-UcHJwmaH1s=S$4 z%4)PdWJX;hh5UoK?6aWoyLxX&NhNRqKam7tcOkLh{%j3K^4Mgx1@i|Pi&}<^5>hs5 zm8?uOS>%)NzT(%PjVPGa?X%`N2TQCKbeH2l;cTnHiHppPSJ<7y-yEIiC!P*ikl&!B z%+?>VttCOQM@ShFguHVjxX^?mHX^hSaO_;pnyh^v9EumqSZTi+#f&_Vaija0Q-e*| z7ulQj6Fs*bbmsWp{`auM04gGwsYYdNNZcg|ph0OgD>7O}Asn7^Z=eI>`$2*v78;sj-}oMoEj&@)9+ycEOo92xSyY344^ z11Hb8^kdOvbf^GNAK++bYioknrpdN>+u8R?JxG=!2Kd9r=YWCOJYXYuM0cOq^FhEd zBg2puKy__7VT3-r*dG4c62Wgxi52EMCQ`bKgf*#*ou(D4-ZN$+mg&7$u!! z-^+Z%;-3IDwqZ|K=ah85OLwkO zKxNBh+4QHh)u9D?MFtpbl)us}9+V!D%w9jfAMYEb>%$A;u)rrI zuBudh;5PN}_6J_}l55P3l_)&RMlH{m!)ai-i$g)&*M`eN$XQMw{v^r@-125^RRCF0 z^2>|DxhQw(mtNEI2Kj(;KblC7x=JlK$@78`O~>V!`|1Lm-^JR$-5pUANAnb(5}B}JGjBsliK4& zk6y(;$e&h)lh2)L=bvZKbvh@>vLlreBdH8No2>$#%_Wp1U0N7Ank!6$dFSi#xzh|( zRi{Uw%-4W!{IXZ)fWx@XX6;&(m_F%c6~X8hx=BN1&q}*( zoaNjWabE{oUPb!Bt$eyd#$5j9rItB-h*5JiNi(v^e|XKAj*8(k<5-2$&ZBR5fF|JA z9&m4fbzNQnAU}r8ab>fFV%J0z5awe#UZ|bz?Ur)U9bCIKWEzi2%A+5CLqh?}K4JHi z4vtM;+uPsVz{Lfr;78W78gC;z*yTch~4YkLr&m-7%-xc ztw6Mh2d>_iO*$Rd8(-Cr1_V8EO1f*^@wRoSozS) zy1UoC@pruAaC8Z_7~_w4Q6n*&B0AjOmMWa;sIav&gu z|J5&|{=a@vR!~k-OjKEgPFCzcJ>#A1uL&7xTDn;{XBdeM}V=l3B8fE1--DHjSaxoSjNKEM9|U9#m2<3>n{Iuo`r3UZp;>GkT2YBNAh|b z^jTq-hJp(ebZh#Lk8hVBP%qXwv-@vbvoREX$TqRGTgEi$%_F9tZES@z8Bx}$#5eeG zk^UsLBH{bc2VBW)*EdS({yw=?qmevwi?BL6*=12k9zM5gJv1>y#ML4!)iiPzVaH9% zgSImetD@dam~e>{LvVh!phhzpW+iFvWpGT#CVE5TQ40n%F|p(sP5mXxna+Ev7PDwA zamaV4m*^~*xV+&p;W749xhb_X=$|LD;FHuB&JL5?*Y2-oIT(wYY2;73<^#46S~Gx| z^cez%V7x$81}UWqS13Gz80379Rj;6~WdiXWOSsdmzY39L;Hg3MH43o*y8ibNBBH`(av4|u;YPq%{R;IuYow<+GEsf@R?=@tT@!}?#>zIIn0CoyV!hq3mw zHj>OOjfJM3F{RG#6ujzo?y32m^tgSXf@v=J$ELdJ+=5j|=F-~hP$G&}tDZsZE?5rX ztGj`!S>)CFmdkccxM9eGIcGnS2AfK#gXwj%esuIBNJQP1WV~b~+D7PJTmWGTSDrR` zEAu4B8l>NPuhsk5a`rReSya2nfV1EK01+G!x8aBdTs3Io$u5!6n6KX%uv@DxAp3F@{4UYg4SWJtQ-W~0MDb|j-$lwVn znAm*Pl!?Ps&3wO=R115RWKb*JKoexo*)uhhHBncEDMSVa_PyA>k{Zm2(wMQ(5NM3# z)jkza|GoWEQo4^s*wE(gHz?Xsg4`}HUAcs42cM1-qq_=+=!Gk^y710j=66(cSWqUe zklbm8+zB_syQv5A2rj!Vbw8;|$@C!vfNmNV!yJIWDQ>{+2x zKjuFX`~~HKG~^6h5FntRpnnHt=D&rq0>IJ9#F0eM)Y-)GpRjiN7gkA8wvnG#K=q{q z9dBn8_~wm4J<3J_vl|9H{7q6u2A!cW{bp#r*-f{gOV^e=8S{nc1DxMHFwuM$;aVI^ zz6A*}m8N-&x8;aunp1w7_vtB*pa+OYBw=TMc6QK=mbA-|Cf* zvyh8D4LRJImooUaSb7t*fVfih<97Gf@VE0|z>NcBwBQze);Rh!k3K_sfunToZY;f2 z^HmC4KjHRVg+eKYj;PRN^|E0>Gj_zagfRbrki68I^#~6-HaHg3BUW%+clM1xQEdPYt_g<2K+z!$>*$9nQ>; zf9Bei{?zY^-e{q_*|W#2rJG`2fy@{%6u0i_VEWTq$*(ZN37|8lFFFt)nCG({r!q#9 z5VK_kkSJ3?zOH)OezMT{!YkCuSSn!K#-Rhl$uUM(bq*jY? zi1xbMVthJ`E>d>(f3)~fozjg^@eheMF6<)I`oeJYx4*+M&%c9VArn(OM-wp%M<-`x z7sLP1&3^%Nld9Dhm@$3f2}87!quhI@nwd@3~fZl_3LYW-B?Ia>ui`ELg z&Qfe!7m6ze=mZ`Ia9$z|ARSw|IdMpooY4YiPN8K z4B(ts3p%2i(Td=tgEHX z0UQ_>URBtG+-?0E;E7Ld^dyZ;jjw0}XZ(}-QzC6+NN=40oDb2^v!L1g9xRvE#@IBR zO!b-2N7wVfLV;mhEaXQ9XAU+>=XVA6f&T4Z-@AX!leJ8obP^P^wP0aICND?~w&NykJ#54x3_@r7IDMdRNy4Hh;h*!u(Ol(#0bJdwEo$5437-UBjQ+j=Ic>Q2z` zJNDf0yO6@mr6y1#n3)s(W|$iE_i8r@Gd@!DWDqZ7J&~gAm1#~maIGJ1sls^gxL9LLG_NhU!pTGty!TbhzQnu)I*S^54U6Yu%ZeCg`R>Q zhBv$n5j0v%O_j{QYWG!R9W?5_b&67KB$t}&e2LdMvd(PxN6Ir!H4>PNlerpBL>Zvyy!yw z-SOo8caEpDt(}|gKPBd$qND5#a5nju^O>V&;f890?yEOfkSG^HQVmEbM3Ugzu+UtH zC(INPDdraBN?P%kE;*Ae%Wto&sgw(crfZ#Qy(<4nk;S|hD3j{IQRI6Yq|f^basLY; z-HB&Je%Gg}Jt@={_C{L$!RM;$$|iD6vu#3w?v?*;&()uB|I-XqEKqZPS!reW9JkLewLb!70T7n`i!gNtb1%vN- zySZj{8-1>6E%H&=V}LM#xmt`J3XQoaD|@XygXjdZ1+P77-=;=eYpoEQ01B@L*a(uW zrZeZz?HJsw_4g0vhUgkg@VF8<-X$B8pOqCuWAl28uB|@r`19DTUQQsb^pfqB6QtiT z*`_UZ`fT}vtUY#%sq2{rchyfu*pCg;uec2$-$N_xgjZcoumE5vSI{+s@iLWoz^Mf; zuI8kDP{!XY6OP~q5}%1&L}CtfH^N<3o4L@J@zg1-mt{9L`s^z$Vgb|mr{@WiwAqKg zp#t-lhrU>F8o0s1q_9y`gQNf~Vb!F%70f}$>i7o4ho$`uciNf=xgJ>&!gSt0g;M>*x4-`U)ysFW&Vs^Vk6m%?iuWU+o&m(2Jm26Y(3%TL; zA7T)BP{WS!&xmxNw%J=$MPfn(9*^*TV;$JwRy8Zl*yUZi8jWYF>==j~&S|Xinsb%c z2?B+kpet*muEW7@AzjBA^wAJBY8i|#C{WtO_or&Nj2{=6JTTX05}|H>N2B|Wf!*3_ z7hW*j6p3TvpghEc6-wufFiY!%-GvOx*bZrhZu+7?iSrZL5q9}igiF^*R3%DE4aCHZ zqu>xS8LkW+Auv%z-<1Xs92u23R$nk@Pk}MU5!gT|c7vGlEA%G^2th&Q*zfg%-D^=f z&J_}jskj|Q;73NP4<4k*Y%pXPU2Thoqr+5uH1yEYM|VtBPW6lXaetokD0u z9qVek6Q&wk)tFbQ8(^HGf3Wp16gKmr>G;#G(HRBx?F`9AIRboK+;OfHaLJ(P>IP0w zyTbTkx_THEOs%Q&aPrxbZrJlio+hCC_HK<4%f3ZoSAyG7Dn`=X=&h@m*|UYO-4Hq0 z-Bq&+Ie!S##4A6OGoC~>ZW`Y5J)*ouaFl_e9GA*VSL!O_@xGiBw!AF}1{tB)z(w%c zS1Hmrb9OC8>0a_$BzeiN?rkPLc9%&;1CZW*4}CDDNr2gcl_3z+WC15&H1Zc2{o~i) z)LLW=WQ{?ricmC`G1GfJ0Yp4Dy~Ba;j6ZV4r{8xRs`13{dD!xXmr^Aga|C=iSmor% z8hi|pTXH)5Yf&v~exp3o+sY4B^^b*eYkkCYl*T{*=-0HniSA_1F53eCb{x~1k3*`W zr~};p1A`k{1DV9=UPnLDgz{aJH=-LQo<5%+Em!DNN252xwIf*wF_zS^!(XSm(9eoj z=*dXG&n0>)_)N5oc6v!>-bd(2ragD8O=M|wGW z!xJQS<)u70m&6OmrF0WSsr@I%T*c#Qo#Ha4d3COcX+9}hM5!7JIGF>7<~C(Ear^Sn zm^ZFkV6~Ula6+8S?oOROOA6$C&q&dp`>oR-2Ym3(HT@O7Sd5c~+kjrmM)YmgPH*tL zX+znN>`tv;5eOfX?h{AuX^LK~V#gPCu=)Tigtq9&?7Xh$qN|%A$?V*v=&-2F$zTUv z`C#WyIrChS5|Kgm_GeudCFf;)!WH7FI60j^0o#65o6`w*S7R@)88n$1nrgU(oU0M9 zx+EuMkC>(4j1;m6NoGqEkpJYJ?vc|B zOlwT3t&UgL!pX_P*6g36`ZXQ; z9~Cv}ANFnJGp(;ZhS(@FT;3e)0)Kp;h^x;$*xZn*k0U6-&FwI=uOGaODdrsp-!K$Ac32^c{+FhI-HkYd5v=`PGsg%6I`4d9Jy)uW0y%) zm&j^9WBAp*P8#kGJUhB!L?a%h$hJgQrx!6KCB_TRo%9{t0J7KW8!o1B!NC)VGLM5! zpZy5Jc{`r{1e(jd%jsG7k%I+m#CGS*BPA65ZVW~fLYw0dA-H_}O zrkGFL&P1PG9p2(%QiEWm6x;U-U&I#;Em$nx-_I^wtgw3xUPVVu zqSuKnx&dIT-XT+T10p;yjo1Y)z(x1fb8Dzfn8e yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/yape-challenge/yape-transaction-validator/gradlew.bat b/yape-challenge/yape-transaction-validator/gradlew.bat new file mode 100644 index 0000000..25da30d --- /dev/null +++ b/yape-challenge/yape-transaction-validator/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/yape-challenge/yape-transaction-validator/settings.gradle b/yape-challenge/yape-transaction-validator/settings.gradle new file mode 100644 index 0000000..609914d --- /dev/null +++ b/yape-challenge/yape-transaction-validator/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'yape-transaction-validator' diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/YapeTransactionValidatorApplication.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/YapeTransactionValidatorApplication.java new file mode 100644 index 0000000..77e5c97 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/YapeTransactionValidatorApplication.java @@ -0,0 +1,13 @@ +package com.yape.transaction.validator; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class YapeTransactionValidatorApplication { + + public static void main(String[] args) { + SpringApplication.run(YapeTransactionValidatorApplication.class, args); + } + +} diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/Transaction.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/Transaction.java new file mode 100644 index 0000000..0be3956 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/Transaction.java @@ -0,0 +1,19 @@ +package com.yape.transaction.validator.domain; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.Getter; + +import java.util.Date; + +@Data +public class Transaction { + + private String internalId; + private String transactionExternalId; + private int transferTypeId; + private String status; + private double value; + private Date createdAt; +} diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/event/ValidatedTransactionEventPort.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/event/ValidatedTransactionEventPort.java new file mode 100644 index 0000000..2e5328d --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/event/ValidatedTransactionEventPort.java @@ -0,0 +1,8 @@ +package com.yape.transaction.validator.domain.event; + +import com.yape.transaction.validator.domain.Transaction; + +public interface ValidatedTransactionEventPort { + + void sendValidatedTransactionEvent (Transaction transaction); +} diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/DomainValidatorService.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/DomainValidatorService.java new file mode 100644 index 0000000..548f226 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/DomainValidatorService.java @@ -0,0 +1,25 @@ +package com.yape.transaction.validator.domain.service; + +import com.yape.transaction.validator.domain.Transaction; +import com.yape.transaction.validator.domain.event.ValidatedTransactionEventPort; + +public class DomainValidatorService implements ValidatorService { + + private final ValidatedTransactionEventPort eventPort; + + public DomainValidatorService(ValidatedTransactionEventPort eventPort) { + this.eventPort = eventPort; + } + + @Override + public void validateTransaction(Transaction transaction) { + + if(transaction.getValue() > 1000) { + transaction.setStatus("REJECTED"); + } else { + transaction.setStatus("APPROVED"); + } + + eventPort.sendValidatedTransactionEvent(transaction); + } +} diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/ValidatorService.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/ValidatorService.java new file mode 100644 index 0000000..ed5ac09 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/domain/service/ValidatorService.java @@ -0,0 +1,9 @@ +package com.yape.transaction.validator.domain.service; + +import com.yape.transaction.validator.domain.Transaction; + +public interface ValidatorService { + + void validateTransaction(Transaction transaction); + +} diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/BeanConfig.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/BeanConfig.java new file mode 100644 index 0000000..3dcb344 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/BeanConfig.java @@ -0,0 +1,16 @@ +package com.yape.transaction.validator.infrastructure.config; + +import com.yape.transaction.validator.domain.event.ValidatedTransactionEventPort; +import com.yape.transaction.validator.domain.service.DomainValidatorService; +import com.yape.transaction.validator.domain.service.ValidatorService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class BeanConfig { + + @Bean + ValidatorService DomainValidatorService(ValidatedTransactionEventPort port) { + return new DomainValidatorService(port); + } +} \ No newline at end of file diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/KafkaTopicConfig.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/KafkaTopicConfig.java new file mode 100644 index 0000000..65bfdd5 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/config/KafkaTopicConfig.java @@ -0,0 +1,20 @@ +package com.yape.transaction.validator.infrastructure.config; + +import org.apache.kafka.clients.admin.NewTopic; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.kafka.config.TopicBuilder; + +@Configuration +public class KafkaTopicConfig { + + @Bean + public NewTopic createdTransactionTopic() { + return TopicBuilder.name("createdTransactionTopic").build(); + } + + @Bean + public NewTopic validatedTransactionTopic() { + return TopicBuilder.name("validatedTransactionTopic").build(); + } +} diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/CreatedTransactionConsumer.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/CreatedTransactionConsumer.java new file mode 100644 index 0000000..325e2f7 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/CreatedTransactionConsumer.java @@ -0,0 +1,22 @@ +package com.yape.transaction.validator.infrastructure.event; + +import com.yape.transaction.validator.domain.Transaction; +import com.yape.transaction.validator.domain.service.ValidatorService; +import org.springframework.kafka.annotation.KafkaListener; +import org.springframework.stereotype.Service; + +@Service +public class CreatedTransactionConsumer { + + private final ValidatorService service; + + public CreatedTransactionConsumer(ValidatorService service) { + this.service = service; + } + + @KafkaListener(topics = "createdTransactionTopic", groupId = "validatorConsumerGroup") + public void consume(Transaction transaction) { + service.validateTransaction(transaction); + } + +} diff --git a/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/ValidatedTransactionProducer.java b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/ValidatedTransactionProducer.java new file mode 100644 index 0000000..64457f4 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/java/com/yape/transaction/validator/infrastructure/event/ValidatedTransactionProducer.java @@ -0,0 +1,30 @@ +package com.yape.transaction.validator.infrastructure.event; + +import com.yape.transaction.validator.domain.Transaction; +import com.yape.transaction.validator.domain.event.ValidatedTransactionEventPort; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.kafka.support.KafkaHeaders; +import org.springframework.messaging.Message; +import org.springframework.messaging.support.MessageBuilder; +import org.springframework.stereotype.Service; + +@Service +public class ValidatedTransactionProducer implements ValidatedTransactionEventPort { + + private KafkaTemplate kafkaTemplate; + + public ValidatedTransactionProducer(KafkaTemplate kafkaTemplate) { + this.kafkaTemplate = kafkaTemplate; + } + + @Override + public void sendValidatedTransactionEvent(Transaction transaction) { + + Message transactionMessage = MessageBuilder + .withPayload(transaction) + .setHeader(KafkaHeaders.TOPIC, "validatedTransactionTopic") + .build(); + + kafkaTemplate.send(transactionMessage); + } +} diff --git a/yape-challenge/yape-transaction-validator/src/main/resources/application.properties b/yape-challenge/yape-transaction-validator/src/main/resources/application.properties new file mode 100644 index 0000000..729db07 --- /dev/null +++ b/yape-challenge/yape-transaction-validator/src/main/resources/application.properties @@ -0,0 +1,15 @@ +spring.application.name=yape-transaction-validator +server.port=8082 + +spring.kafka.consumer.bootstrap-servers=localhost:9092 +spring.kafka.consumer.group-id=validatorConsumerGroup +spring.kafka.consumer.auto-offset-reset=earliest +spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer +spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer +spring.kafka.consumer.properties.spring.json.trusted.packages=* +spring.kafka.consumer.properties.spring.json.type.mapping=com.yape.transaction.manager.domain.Transaction:com.yape.transaction.validator.domain.Transaction + +spring.kafka.producer.bootstrap-servers=localhost:9092 +spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer +spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer +