Skip to content

Commit

Permalink
fix: sonarqubecloud issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Mannia committed Feb 6, 2025
1 parent 00ea8f2 commit f505585
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import it.pagopa.ecommerce.commons.client.QueueAsyncClient;
import it.pagopa.ecommerce.commons.documents.BaseTransactionEvent;
import it.pagopa.ecommerce.commons.documents.v2.authorization.TransactionGatewayAuthorizationRequestedData;
import it.pagopa.ecommerce.commons.domain.v2.TransactionClosed;
import it.pagopa.ecommerce.commons.domain.v2.pojos.BaseTransactionWithRequestedAuthorization;
import it.pagopa.ecommerce.commons.generated.server.model.TransactionStatusDto;
import it.pagopa.ecommerce.commons.queues.QueueEvent;
Expand Down Expand Up @@ -107,33 +107,12 @@ public Mono<BaseTransactionEvent<?>> handle(TransactionAddUserReceiptCommand com
)
)
.flatMap(
tx -> {
if (tx.getStatus() == TransactionStatusDto.CLOSURE_REQUESTED) {
return Mono.error(
new InvalidStatusException(
"Error processing closure update request: the transaction is in the state "
+ tx.getStatus()
)
);
}
return Mono.error(
new AlreadyProcessedException(
tx.getTransactionId(),
tx.getTransactionAuthorizationRequestData()
.getPspId(),
tx.getTransactionAuthorizationRequestData()
.getPaymentTypeCode(),
tx.getClientId().name(),
transactionsUtils.isWalletPayment(tx).orElseThrow(),
new UpdateTransactionStatusTracerUtils.GatewayOutcomeResult(
command.getData().addUserReceiptRequest()
.getOutcome()
.getValue(),
Optional.empty()
)
)
);
}
tx -> validateAndHandleTransactionClosure(
tx,
command.getData().addUserReceiptRequest()
.getOutcome()
.getValue()
)
)
);
return transaction
Expand Down Expand Up @@ -264,6 +243,35 @@ public Mono<BaseTransactionEvent<?>> handle(TransactionAddUserReceiptCommand com

}

private Mono<TransactionClosed> validateAndHandleTransactionClosure(
BaseTransactionWithRequestedAuthorization tx,
String outcome
) {
if (tx.getStatus() == TransactionStatusDto.CLOSURE_REQUESTED) {
return Mono.error(
new InvalidStatusException(
"Error processing closure update request: the transaction is in the state "
+ tx.getStatus()
)
);
}
return Mono.error(
new AlreadyProcessedException(
tx.getTransactionId(),
tx.getTransactionAuthorizationRequestData()
.getPspId(),
tx.getTransactionAuthorizationRequestData()
.getPaymentTypeCode(),
tx.getClientId().name(),
transactionsUtils.isWalletPayment(tx).orElseThrow(),
new UpdateTransactionStatusTracerUtils.GatewayOutcomeResult(
outcome,
Optional.empty()
)
)
);
}

private static it.pagopa.ecommerce.commons.documents.v2.TransactionUserReceiptData.Outcome requestOutcomeToReceiptOutcome(
AddUserReceiptRequestDto.OutcomeEnum requestOutcome
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import it.pagopa.ecommerce.commons.domain.v2.TransactionActivated;
import it.pagopa.ecommerce.commons.domain.v2.TransactionEventCode;
import it.pagopa.ecommerce.commons.generated.npg.v1.dto.OperationResultDto;
import it.pagopa.ecommerce.commons.generated.server.model.AuthorizationResultDto;
import it.pagopa.ecommerce.commons.queues.QueueEvent;
import it.pagopa.ecommerce.commons.queues.TracingUtils;
import it.pagopa.ecommerce.commons.queues.TracingUtilsTests;
Expand Down Expand Up @@ -808,7 +807,7 @@ void shouldRejectTransactionInInvalidStateClosureRequested() {

/* test */
StepVerifier.create(updateStatusHandler.handle(requestStatusCommand))
.expectErrorMatches(error -> error instanceof InvalidStatusException)
.expectErrorMatches(InvalidStatusException.class::isInstance)
.verify();

Mockito.verify(userReceiptDataEventRepository, Mockito.times(0)).save(any());
Expand Down Expand Up @@ -864,7 +863,7 @@ void shouldRejectTransactionInInvalidState() {

/* test */
StepVerifier.create(updateStatusHandler.handle(requestStatusCommand))
.expectErrorMatches(error -> error instanceof AlreadyProcessedException)
.expectErrorMatches(AlreadyProcessedException.class::isInstance)
.verify();

Mockito.verify(userReceiptDataEventRepository, Mockito.times(0)).save(any());
Expand Down Expand Up @@ -978,7 +977,7 @@ void shouldRejectTransactionWithClosureOutcomeKO() {

/* test */
StepVerifier.create(updateStatusHandler.handle(requestStatusCommand))
.expectErrorMatches(error -> error instanceof AlreadyProcessedException)
.expectErrorMatches(AlreadyProcessedException.class::isInstance)
.verify();

verify(updateTransactionStatusTracerUtils, times(0)).traceStatusUpdateOperation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ void shouldOpenCircuitBreakerForNotExcludedExceptionPerformingRetry() {

@Test
@Order(3)
void shouldOpenCircuitBreakerForInvalidStatusExceptionPerformingRetry() {
void shouldPerformRetryForInvalidStatusExceptionOnAddUserReceipt() {
Retry retry = retryRegistry.retry("addUserReceipt");
long expectedFailedCallsWithoutRetryAttempt = retry.getMetrics().getNumberOfFailedCallsWithoutRetryAttempt();
long expectedFailedCallsWithRetryAttempt = retry.getMetrics().getNumberOfFailedCallsWithRetryAttempt() + 1;
Expand Down

0 comments on commit f505585

Please sign in to comment.