From 1dee8c14ee3a1eabd51de8d74537bf7d44567c16 Mon Sep 17 00:00:00 2001 From: Vishwas Babu A J Date: Sat, 22 Nov 2014 02:47:53 +0530 Subject: [PATCH] fixing failing Client integration tests --- .../service/PlatformSecurityContext.java | 4 +- ...WritePlatformServiceJpaRepositoryImpl.java | 37 ++++++++------ ...WritePlatformServiceJpaRepositoryImpl.java | 37 ++++++-------- .../domain/DepositAccountAssembler.java | 19 ++++--- .../SavingsAccountDomainServiceJpa.java | 5 +- ...WritePlatformServiceJpaRepositoryImpl.java | 50 ++++++++----------- ...WritePlatformServiceJpaRepositoryImpl.java | 49 +++++++----------- 7 files changed, 88 insertions(+), 113 deletions(-) diff --git a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/PlatformSecurityContext.java b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/PlatformSecurityContext.java index 0066295b8..de0e97b17 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/PlatformSecurityContext.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/infrastructure/security/service/PlatformSecurityContext.java @@ -16,8 +16,8 @@ public interface PlatformSecurityContext { * Convenience method returns null (does not throw an exception) if an * authenticated user is not present * - * Mainly used in methods that can be triggered via both the API and batch - * Jobs (which do not have an authenticated user) + * To be used only in service layer methods that can be triggered via both + * the API and batch Jobs (which do not have an authenticated user) * * @return */ diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java index e8045672b..360bdd3c4 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java @@ -125,7 +125,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa private final LoanReadPlatformService loanReadPlatformService; private final LoanRepaymentScheduleInstallmentRepository repaymentScheduleInstallmentRepository; private final LoanAccountDomainService loanAccountDomainService; - + @Autowired public LoanApplicationWritePlatformServiceJpaRepositoryImpl(final PlatformSecurityContext context, final FromJsonHelper fromJsonHelper, final LoanApplicationTransitionApiJsonValidator loanApplicationTransitionApiJsonValidator, @@ -166,7 +166,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa this.repaymentScheduleInstallmentRepository = repaymentScheduleInstallmentRepository; this.loanReadPlatformService = loanReadPlatformService; this.loanAccountDomainService = loanAccountDomainService; - + } private LoanLifecycleStateMachine defaultLoanLifecycleStateMachine() { @@ -179,7 +179,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa public CommandProcessingResult submitApplication(final JsonCommand command) { try { - final AppUser currentUser = this.context.authenticatedUser(); + final AppUser currentUser = getAppUserIfPresent(); this.fromApiJsonDeserializer.validateForCreate(command.json()); @@ -360,7 +360,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa public CommandProcessingResult modifyApplication(final Long loanId, final JsonCommand command) { try { - AppUser currentUser = this.context.authenticatedUser(); + AppUser currentUser = getAppUserIfPresent(); this.fromApiJsonDeserializer.validateForModify(command.json()); @@ -389,13 +389,12 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa * If there are any charges already present, which are now not * passed in as a part of the request, deem the charges as modified **/ - if(!possiblyModifedLoanCharges.isEmpty()){ + if (!possiblyModifedLoanCharges.isEmpty()) { if (!possiblyModifedLoanCharges.containsAll(existingCharges)) { isChargeModified = true; } } - /** * If any new charges are added or values of existing charges are * modified @@ -697,8 +696,6 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa @Override public CommandProcessingResult deleteApplication(final Long loanId) { - this.context.authenticatedUser(); - final Loan loan = retrieveLoanBy(loanId); checkClientOrGroupActive(loan); @@ -722,7 +719,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa @Override public CommandProcessingResult approveApplication(final Long loanId, final JsonCommand command) { - final AppUser currentUser = this.context.authenticatedUser(); + final AppUser currentUser = getAppUserIfPresent(); this.loanApplicationTransitionApiJsonValidator.validateApproval(command.json()); @@ -764,7 +761,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa @Override public CommandProcessingResult undoApplicationApproval(final Long loanId, final JsonCommand command) { - AppUser currentUser = this.context.authenticatedUser(); + AppUser currentUser = getAppUserIfPresent(); this.fromApiJsonDeserializer.validateForUndo(command.json()); @@ -773,16 +770,16 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa final Map changes = loan.undoApproval(defaultLoanLifecycleStateMachine()); if (!changes.isEmpty()) { - + // If loan approved amount is not same as loan amount demanded, then // during undo, restore the demand amount to principal amount. - + if (changes.containsKey(LoanApiConstants.approvedLoanAmountParameterName) - || changes.containsKey(LoanApiConstants.disbursementPrincipalParameterName )) { + || changes.containsKey(LoanApiConstants.disbursementPrincipalParameterName)) { ScheduleGeneratorDTO scheduleGeneratorDTO = loanAccountDomainService.buildScheduleGeneratorDTO(loan); loan.regenerateRepaymentSchedule(scheduleGeneratorDTO, currentUser); } - + this.loanRepository.save(loan); final String noteText = command.stringValueOfParameterNamed("note"); @@ -807,7 +804,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa @Override public CommandProcessingResult rejectApplication(final Long loanId, final JsonCommand command) { - final AppUser currentUser = this.context.authenticatedUser(); + final AppUser currentUser = getAppUserIfPresent(); this.loanApplicationTransitionApiJsonValidator.validateRejection(command.json()); @@ -840,7 +837,7 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa @Override public CommandProcessingResult applicantWithdrawsFromApplication(final Long loanId, final JsonCommand command) { - final AppUser currentUser = this.context.authenticatedUser(); + final AppUser currentUser = getAppUserIfPresent(); this.loanApplicationTransitionApiJsonValidator.validateApplicantWithdrawal(command.json()); @@ -937,4 +934,12 @@ public class LoanApplicationWritePlatformServiceJpaRepositoryImpl implements Loa } } + private AppUser getAppUserIfPresent() { + AppUser user = null; + if (this.context != null) { + user = this.context.getAuthenticatedUserIfPresent(); + } + return user; + } + } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java index 2b7742a4a..dcdceb92e 100755 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java @@ -1374,10 +1374,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf private boolean addCharge(final Loan loan, final Charge chargeDefinition, final LoanCharge loanCharge) { - AppUser currentUser = null; - if (this.context != null) { - currentUser = this.context.authenticatedUser(); - } + AppUser currentUser = getAppUserIfPresent(); if (!loan.hasCurrencyCodeOf(chargeDefinition.getCurrencyCode())) { final String errorMessage = "Charge and Loan must have the same currency."; throw new InvalidCurrencyException("loanCharge", "attach.to.loan", errorMessage); @@ -1774,10 +1771,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf @Override public LoanTransaction initiateLoanTransfer(final Long accountId, final LocalDate transferDate) { - AppUser currentUser = null; - if (this.context != null) { - currentUser = this.context.authenticatedUser(); - } + AppUser currentUser = getAppUserIfPresent(); final Loan loan = this.loanAssembler.assembleFrom(accountId); checkClientOrGroupActive(loan); @@ -1803,10 +1797,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf public LoanTransaction acceptLoanTransfer(final Long accountId, final LocalDate transferDate, final Office acceptedInOffice, final Staff loanOfficer) { - AppUser currentUser = null; - if (this.context != null) { - currentUser = this.context.authenticatedUser(); - } + AppUser currentUser = getAppUserIfPresent(); final Loan loan = this.loanAssembler.assembleFrom(accountId); @@ -1837,10 +1828,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf @Override public LoanTransaction withdrawLoanTransfer(final Long accountId, final LocalDate transferDate) { - AppUser currentUser = null; - if (this.context != null) { - currentUser = this.context.authenticatedUser(); - } + AppUser currentUser = getAppUserIfPresent(); final Loan loan = this.loanAssembler.assembleFrom(accountId); @@ -2389,7 +2377,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf @Override public CommandProcessingResult undoWriteOff(Long loanId) { - final AppUser currentUser = this.context.authenticatedUser(); + final AppUser currentUser = getAppUserIfPresent(); final Loan loan = this.loanAssembler.assembleFrom(loanId); checkClientOrGroupActive(loan); @@ -2593,10 +2581,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf @Transactional public void recalculateInterest(final long loanId) { - AppUser currentUser = null; - if (this.context != null) { - currentUser = this.context.authenticatedUser(); - } + AppUser currentUser = getAppUserIfPresent(); Loan loan = this.loanAssembler.assembleFrom(loanId); CalendarInstance restCalendarInstance = null; ApplicationCurrency applicationCurrency = null; @@ -2662,7 +2647,7 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf private void regenerateScheduleOnDisbursement(final JsonCommand command, final Loan loan, final boolean recalculateSchedule, final ScheduleGeneratorDTO scheduleGeneratorDTO) { - AppUser currentUser = this.context.authenticatedUser(); + AppUser currentUser = getAppUserIfPresent(); final LocalDate actualDisbursementDate = command.localDateValueOfParameterNamed("actualDisbursementDate"); BigDecimal emiAmount = command.bigDecimalValueOfParameterNamed(LoanApiConstants.emiAmountParameterName); loan.regenerateScheduleOnDisbursement(scheduleGeneratorDTO, recalculateSchedule, actualDisbursementDate, emiAmount, currentUser); @@ -2683,4 +2668,12 @@ public class LoanWritePlatformServiceJpaRepositoryImpl implements LoanWritePlatf return installments; } + private AppUser getAppUserIfPresent() { + AppUser user = null; + if (this.context != null) { + user = this.context.getAuthenticatedUserIfPresent(); + } + return user; + } + } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositAccountAssembler.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositAccountAssembler.java index 931c5816e..3350a7762 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositAccountAssembler.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/DepositAccountAssembler.java @@ -89,7 +89,7 @@ import com.google.gson.JsonObject; @Service public class DepositAccountAssembler { - private final PlatformSecurityContext context; + private final PlatformSecurityContext context; private final SavingsAccountTransactionSummaryWrapper savingsAccountTransactionSummaryWrapper; private final SavingsHelper savingsHelper; private final ClientRepositoryWrapper clientRepository; @@ -110,8 +110,7 @@ public class DepositAccountAssembler { final SavingsAccountChargeAssembler savingsAccountChargeAssembler, final FromJsonHelper fromApiJsonHelper, final DepositProductAssembler depositProductAssembler, final RecurringDepositProductRepository recurringDepositProductRepository, - final AccountTransfersReadPlatformService accountTransfersReadPlatformService, - final PlatformSecurityContext context) { + final AccountTransfersReadPlatformService accountTransfersReadPlatformService, final PlatformSecurityContext context) { this.savingsAccountTransactionSummaryWrapper = savingsAccountTransactionSummaryWrapper; this.clientRepository = clientRepository; @@ -394,10 +393,7 @@ public class DepositAccountAssembler { } public Collection assembleBulkMandatorySavingsAccountTransactionDTOs(final JsonCommand command) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final String json = command.json(); if (StringUtils.isBlank(json)) { throw new InvalidJsonException(); } final JsonElement element = this.fromApiJsonHelper.parse(json); @@ -428,4 +424,13 @@ public class DepositAccountAssembler { return savingsAccountTransactions; } + + private AppUser getAppUserIfPresent() { + AppUser user = null; + if (this.context != null) { + user = this.context.getAuthenticatedUserIfPresent(); + } + return user; + } + } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java index ed692d00a..dbe3740c2 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java @@ -107,10 +107,7 @@ public class SavingsAccountDomainServiceJpa implements SavingsAccountDomainServi final LocalDate transactionDate, final BigDecimal transactionAmount, final PaymentDetail paymentDetail, final boolean isAccountTransfer, final boolean isRegularTransaction) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); final Integer financialYearBeginningMonth = this.configurationDomainService.retrieveFinancialYearBeginningMonth(); diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java index 254046539..e86671d2f 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/DepositAccountWritePlatformServiceJpaRepositoryImpl.java @@ -583,11 +583,8 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo @Override public CommandProcessingResult adjustRDTransaction(final Long savingsId, final Long transactionId, final JsonCommand command) { - - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -830,10 +827,7 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo public SavingsAccountTransaction initiateSavingsTransfer(final Long accountId, final LocalDate transferDate, final DepositAccountType depositAccountType) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); final Integer financialYearBeginningMonth = this.configurationDomainService.retrieveFinancialYearBeginningMonth(); @@ -864,11 +858,8 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo @Override public SavingsAccountTransaction withdrawSavingsTransfer(final Long accountId, final LocalDate transferDate, final DepositAccountType depositAccountType) { - - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -908,11 +899,8 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo public SavingsAccountTransaction acceptSavingsTransfer(final Long accountId, final LocalDate transferDate, final Office acceptedInOffice, final Staff fieldOfficer, final DepositAccountType depositAccountType) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } - + AppUser user = getAppUserIfPresent(); + final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); final Integer financialYearBeginningMonth = this.configurationDomainService.retrieveFinancialYearBeginningMonth(); @@ -1057,10 +1045,7 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo public CommandProcessingResult waiveCharge(final Long savingsAccountId, final Long savingsAccountChargeId, @SuppressWarnings("unused") final DepositAccountType depositAccountType) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -1131,8 +1116,8 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo public CommandProcessingResult payCharge(final Long savingsAccountId, final Long savingsAccountChargeId, final JsonCommand command, @SuppressWarnings("unused") final DepositAccountType depositAccountType) { - this.context.authenticatedUser(); - + this.context.authenticatedUser(); + this.savingsAccountChargeDataValidator.validatePayCharge(command.json()); final Locale locale = command.extractLocale(); final DateTimeFormatter fmt = DateTimeFormat.forPattern(command.dateFormat()).withLocale(locale); @@ -1191,11 +1176,8 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo @Transactional private void payCharge(final SavingsAccountCharge savingsAccountCharge, final LocalDate transactionDate, final BigDecimal amountPaid, final DateTimeFormatter formatter) { - - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -1277,4 +1259,12 @@ public class DepositAccountWritePlatformServiceJpaRepositoryImpl implements Depo accountTransactionDTO.getPaymentDetail(), isRegularTransaction); } + private AppUser getAppUserIfPresent() { + AppUser user = null; + if (this.context != null) { + user = this.context.getAuthenticatedUserIfPresent(); + } + return user; + } + } \ No newline at end of file diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java index 5f89052d3..80b2101ef 100644 --- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java +++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java @@ -195,10 +195,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi public void processPostActiveActions(final SavingsAccount account, final DateTimeFormatter fmt, final Set existingTransactionIds, final Set existingReversedTransactionIds) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -297,10 +294,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi @Override public CommandProcessingResult applyAnnualFee(final Long savingsAccountChargeId, final Long accountId) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final SavingsAccountCharge savingsAccountCharge = this.savingsAccountChargeRepository.findOneWithNotFoundDetection( savingsAccountChargeId, accountId); @@ -471,10 +465,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi @Override public CommandProcessingResult adjustSavingsTransaction(final Long savingsId, final Long transactionId, final JsonCommand command) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -640,10 +631,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi @Override public SavingsAccountTransaction initiateSavingsTransfer(final Long accountId, final LocalDate transferDate) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -675,10 +663,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi @Override public SavingsAccountTransaction withdrawSavingsTransfer(final Long accountId, final LocalDate transferDate) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -718,10 +703,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi public SavingsAccountTransaction acceptSavingsTransfer(final Long accountId, final LocalDate transferDate, final Office acceptedInOffice, final Staff fieldOfficer) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -866,10 +848,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi @Override public CommandProcessingResult waiveCharge(final Long savingsAccountId, final Long savingsAccountChargeId) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); final boolean isSavingsInterestPostingAtCurrentPeriodEnd = this.configurationDomainService .isSavingsInterestPostingAtCurrentPeriodEnd(); @@ -939,10 +918,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi @Override public CommandProcessingResult payCharge(final Long savingsAccountId, final Long savingsAccountChargeId, final JsonCommand command) { - AppUser user = null; - if (this.context != null) { - user = this.context.authenticatedUser(); - } + AppUser user = getAppUserIfPresent(); this.savingsAccountChargeDataValidator.validatePayCharge(command.json()); final Locale locale = command.extractLocale(); @@ -1186,4 +1162,13 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi .with(actualChanges) // .build(); } + + private AppUser getAppUserIfPresent() { + AppUser user = null; + if (this.context != null) { + user = this.context.getAuthenticatedUserIfPresent(); + } + return user; + } + } \ No newline at end of file