This is an automated email from the ASF dual-hosted git repository.
Aman-Mittal pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/fineract-consumer-facing.git
from c536580 Merge pull request #96 from
apache/dependabot/npm_and_yarn/frontend/hono-4.13.1
add 260f020 - added idempotency passthrough to commands that write to
Fineract - created centralized idempotency module in infrastructure - updated
FineractClient to match - added Fineract Client idempotency interceptor to
attach idempotency header - implemented idempotency key generation on the
frontend - fixed issue in tests where Fineract cannot accept null fields -
refactored infrastructure for better organization - added unit and e2e tests
new d041a75 Merge pull request #98 from edk12564/idempotency
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../audit/command/api/AuditCommandController.java | 2 +-
.../api/AuthenticationCommandController.java | 2 +-
.../service/AuthenticationCommandServiceImpl.java | 4 +-
.../api/BeneficiariesCommandController.java | 2 +-
.../service/BeneficiariesCommandServiceImpl.java | 10 +-
.../access/filter/DeviceFingerprintFilter.java | 2 +-
.../configs/FineractClientConfig.java | 56 ++++++++
.../fineractclient/{ => data}/FineractHeaders.java | 3 +-
...java => FineractIdempotencyKeyInterceptor.java} | 18 ++-
.../FineractTenantHeaderInterceptor.java | 2 +-
.../{ => service}/FineractCaller.java | 16 ++-
.../data/DerivedIdempotencyKey.java} | 7 +-
.../IdempotencyKeyMalformedException.java} | 10 +-
.../idempotency/service/IdempotencyKeyDeriver.java | 49 +++++++
.../service/IdempotencyKeyHolder.java} | 19 ++-
.../service/IdempotencyKeyPolicyEvaluator.java} | 23 +++-
.../stepup/{ => data}/StepUpConstants.java | 2 +-
.../stepup/{ => service}/StepUpTokenService.java | 3 +-
.../web/{ => data}/ConsumerHeaders.java | 3 +-
.../{validation => web/data}/PasswordPolicy.java | 2 +-
.../EmailMaskingService.java} | 6 +-
.../loans/command/api/LoansCommandController.java | 12 ++
.../command/data/ModifyLoanApplicationCommand.java | 1 +
.../command/data/SubmitLoanApplicationCommand.java | 1 +
.../data/WithdrawLoanApplicationCommand.java | 1 +
...on.java => LoanCommandInProgressException.java} | 8 +-
.../command/service/LoansCommandServiceImpl.java | 27 +++-
.../loans/query/service/LoansQueryServiceImpl.java | 2 +-
.../data/SubmitRegistrationCommandRequest.java | 2 +-
.../service/RegistrationCommandServiceImpl.java | 4 +-
.../query/service/SavingsQueryServiceImpl.java | 2 +-
.../command/api/TransfersCommandController.java | 6 +-
.../command/data/ConfirmTransferCommand.java | 1 +
...ption.java => TransferInProgressException.java} | 8 +-
.../service/TransfersCommandServiceImpl.java | 101 ++++++++------
.../user/command/api/UserCommandController.java | 2 +-
.../data/ConfirmPasswordChangeCommandRequest.java | 2 +-
.../command/data/ResetPasswordCommandRequest.java | 2 +-
.../command/service/UserCommandServiceImpl.java | 8 +-
.../user/query/service/UserQueryServiceImpl.java | 4 +-
.../BeneficiariesCommandServiceImplTest.java | 2 +-
.../cucumber/clients/AuthenticationClient.java | 2 +-
.../cucumber/clients/UserPasswordClient.java | 2 +-
.../cucumber/helpers/ConsumerApiClientFactory.java | 2 +-
.../consumer/cucumber/helpers/FineractSeeder.java | 10 +-
.../cucumber/steps/BeneficiariesSteps.java | 5 +-
.../consumer/cucumber/steps/LoansSteps.java | 84 +++++++++++-
.../consumer/cucumber/steps/TransfersSteps.java | 49 ++++++-
.../access/filter/DeviceFingerprintFilterTest.java | 2 +-
.../MissingRequestHeaderExceptionHandlerTest.java | 55 ++++++++
.../configs/FineractClientConfigTest.java | 91 ++++++++++++
.../FineractIdempotencyKeyInterceptorTest.java | 85 ++++++++++++
.../fineractclient/service/FineractCallerTest.java | 86 ++++++++++++
.../service/IdempotencyKeyDeriverTest.java | 62 +++++++++
.../service/IdempotencyKeyHolderTest.java} | 34 ++---
.../service/IdempotencyKeyPolicyEvaluatorTest.java | 81 +++++++++++
.../EmailMaskingServiceTest.java} | 14 +-
.../command/api/LoansCommandControllerTest.java | 152 +++++++++++++++++++++
.../service/LoansCommandServiceImplTest.java | 117 ++++++++++++++--
.../api/TransfersCommandControllerTest.java | 109 +++++++++++++++
.../service/TransfersCommandServiceImplTest.java | 90 +++++++++++-
.../service/UserCommandServiceImplTest.java | 4 +-
consumer/src/test/resources/features/loans.feature | 9 ++
.../src/test/resources/features/transfers.feature | 10 ++
.../src/app/features/loans/loan-apply.component.ts | 32 ++++-
.../src/app/features/loans/loans.store.spec.ts | 9 +-
frontend/src/app/features/loans/loans.store.ts | 15 +-
.../app/features/transfers/transfer.component.ts | 16 ++-
.../app/features/transfers/transfers.store.spec.ts | 8 +-
.../src/app/features/transfers/transfers.store.ts | 7 +-
70 files changed, 1487 insertions(+), 192 deletions(-)
rename
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/fineractclient/{
=> data}/FineractHeaders.java (93%)
copy
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/fineractclient/interceptors/{FineractTenantHeaderInterceptor.java
=> FineractIdempotencyKeyInterceptor.java} (64%)
rename
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/fineractclient/{
=> service}/FineractCaller.java (70%)
copy
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{access/data/RateLimitWindow.java
=> idempotency/data/DerivedIdempotencyKey.java} (85%)
copy
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{access/exception/AccessScopeInsufficientException.java
=> idempotency/exception/IdempotencyKeyMalformedException.java} (72%)
create mode 100644
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/idempotency/service/IdempotencyKeyDeriver.java
copy
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{stepup/StepUpConstants.java
=> idempotency/service/IdempotencyKeyHolder.java} (65%)
copy
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{validation/PasswordPolicy.java
=> idempotency/service/IdempotencyKeyPolicyEvaluator.java} (53%)
rename
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/stepup/{ =>
data}/StepUpConstants.java (94%)
rename
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/stepup/{ =>
service}/StepUpTokenService.java (96%)
rename
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/web/{ =>
data}/ConsumerHeaders.java (88%)
rename
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{validation
=> web/data}/PasswordPolicy.java (94%)
rename
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/web/{EmailMasking.java
=> service/EmailMaskingService.java} (89%)
copy
consumer/src/main/java/org/apache/fineract/consumer/loans/command/exception/{LoanCommandAccessDeniedException.java
=> LoanCommandInProgressException.java} (79%)
copy
consumer/src/main/java/org/apache/fineract/consumer/transfers/command/exception/{TransferStepUpInvalidException.java
=> TransferInProgressException.java} (79%)
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/exception/MissingRequestHeaderExceptionHandlerTest.java
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/fineractclient/configs/FineractClientConfigTest.java
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/fineractclient/interceptors/FineractIdempotencyKeyInterceptorTest.java
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/fineractclient/service/FineractCallerTest.java
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/idempotency/service/IdempotencyKeyDeriverTest.java
copy
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/{web/EmailMaskingTest.java
=> idempotency/service/IdempotencyKeyHolderTest.java} (54%)
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/idempotency/service/IdempotencyKeyPolicyEvaluatorTest.java
rename
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/web/{EmailMaskingTest.java
=> service/EmailMaskingServiceTest.java} (74%)
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/loans/command/api/LoansCommandControllerTest.java
create mode 100644
consumer/src/test/java/org/apache/fineract/consumer/transfers/command/api/TransfersCommandControllerTest.java