Skip to content

Commit

Permalink
fix: handling NotFound
Browse files Browse the repository at this point in the history
  • Loading branch information
antonioT90 committed Feb 10, 2025
1 parent 80ecca4 commit eb67c85
Show file tree
Hide file tree
Showing 10 changed files with 52 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import it.gov.pagopa.pu.classification.dto.generated.PaymentsReporting;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException;

Expand All @@ -26,22 +25,20 @@ public Integer saveAll(List<PaymentsReporting> dtos, String accessToken) {
return paymentsReportingApisHolder.getPaymentsReportingEntityExtendedControllerApi(accessToken)
.saveAll1(dtos);
}

public CollectionModelPaymentsReporting getByOrganizationIdAndIuf(Long organizationId, String iuf, String accessToken) {
return paymentsReportingApisHolder.getPaymentsReportingSearchApi(accessToken)
.crudPaymentsReportingFindByOrganizationIdAndIuf(organizationId, iuf);
}


public PaymentsReporting getBySemanticKey(Long orgId, String iuv, String iur, int transferIndex, String accessToken) {
try{
try {
return paymentsReportingApisHolder.getPaymentsReportingSearchApi(accessToken)
.crudPaymentsReportingFindBySemanticKey(orgId, iuv, iur, transferIndex);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
log.info("PaymentsReporting not found: organizationId: {}, iuv: {}, iur: {}, transferIndex: {}", orgId, iuv, iur, transferIndex);
return null;
}
throw e;
} catch (HttpClientErrorException.NotFound e) {
log.info("PaymentsReporting not found: organizationId: {}, iuv: {}, iur: {}, transferIndex: {}", orgId, iuv, iur, transferIndex);
return null;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import it.gov.pagopa.pu.classification.dto.generated.Treasury;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException;

Expand All @@ -23,27 +22,22 @@ public TreasuryClient(TreasuryApisHolder treasuryApisHolder, TreasuryRequestMapp
}

public Treasury findByOrganizationIdAndIuf(Long organizationId, String iuf, String accessToken) {
try{
try {
return treasuryApisHolder.getTreasurySearchApi(accessToken)
.crudTreasuryGetByOrganizationIdAndIuf(organizationId, iuf);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
log.info("Treasury not found: organizationId: {}, iuf: {}", organizationId, iuf);
return null;
}
throw e;
} catch (HttpClientErrorException.NotFound e) {
log.info("Treasury not found: organizationId: {}, iuf: {}", organizationId, iuf);
return null;
}
}

public Treasury getBySemanticKey(Long organizationId, String billCode, String billYear, String accessToken) {
try{
try {
return treasuryApisHolder.getTreasurySearchApi(accessToken)
.crudTreasuryFindBySemanticKey(organizationId, billCode, billYear);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
log.info("Treasury not found: organizationId: {}, billCode: {}, billYear: {}", organizationId, billCode, billYear);
return null;
}
throw e;
} catch (HttpClientErrorException.NotFound e) {
log.info("Treasury not found: organizationId: {}, billCode: {}, billYear: {}", organizationId, billCode, billYear);
return null;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import it.gov.pagopa.pu.debtposition.dto.generated.Transfer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException;

Expand All @@ -14,20 +13,17 @@
public class TransferSearchClient {
private final DebtPositionApisHolder debtPositionApisHolder;

public TransferSearchClient(DebtPositionApisHolder debtPositionApisHolder) {
this.debtPositionApisHolder = debtPositionApisHolder;
}
public TransferSearchClient(DebtPositionApisHolder debtPositionApisHolder) {
this.debtPositionApisHolder = debtPositionApisHolder;
}

public Transfer findBySemanticKey(Long orgId, String iuv, String iur, Integer transferIndex, String accessToken) {
try{
return debtPositionApisHolder.getTransferSearchControllerApi(accessToken)
.crudTransfersFindBySemanticKey(orgId, iuv, iur, transferIndex, null);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
log.info("Transfer not found: organizationId: {}, iuv: {}, iur: {}, transferIndex: {}", orgId, iuv, iur, transferIndex);
return null;
}
throw e;
}
public Transfer findBySemanticKey(Long orgId, String iuv, String iur, Integer transferIndex, String accessToken) {
try {
return debtPositionApisHolder.getTransferSearchControllerApi(accessToken)
.crudTransfersFindBySemanticKey(orgId, iuv, iur, transferIndex, null);
} catch (HttpClientErrorException.NotFound e) {
log.info("Transfer not found: organizationId: {}, iuv: {}, iur: {}, transferIndex: {}", orgId, iuv, iur, transferIndex);
return null;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import it.gov.pagopa.pu.organization.dto.generated.Organization;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException;

Expand All @@ -20,28 +19,22 @@ public OrganizationSearchClient(OrganizationApisHolder organizationApisHolder) {
}

public Organization findByIpaCode(String ipaCode, String accessToken) {
try{
try {
return organizationApisHolder.getOrganizationSearchControllerApi(accessToken)
.crudOrganizationsFindByIpaCode(ipaCode);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
log.info("Organization not found: ipaCode: {}", ipaCode);
return null;
}
throw e;
} catch (HttpClientErrorException.NotFound e) {
log.info("Organization not found: ipaCode: {}", ipaCode);
return null;
}
}

public Organization findByOrgFiscalCode(String orgFiscalCode, String accessToken) {
try{
try {
return organizationApisHolder.getOrganizationSearchControllerApi(accessToken)
.crudOrganizationsFindByOrgFiscalCode(orgFiscalCode);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
log.info("Organization not found: orgFiscalCode: {}", orgFiscalCode);
return null;
}
throw e;
} catch (HttpClientErrorException.NotFound e) {
log.info("Organization not found: orgFiscalCode: {}", orgFiscalCode);
return null;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import it.gov.pagopa.pu.processexecutions.dto.generated.IngestionFlowFile.FlowFileTypeEnum;
import it.gov.pagopa.pu.processexecutions.dto.generated.PagedModelIngestionFlowFile;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.client.HttpClientErrorException;

Expand All @@ -30,29 +29,26 @@ public IngestionFlowFile findById(Long ingestionFlowFileId, String accessToken)
}


public Integer updateStatus(Long ingestionFlowFileId, IngestionFlowFile.StatusEnum oldStatus, IngestionFlowFile.StatusEnum newStatus, String codError, String discardFileName, String accessToken) {
try{
public Integer updateStatus(Long ingestionFlowFileId, IngestionFlowFile.StatusEnum oldStatus, IngestionFlowFile.StatusEnum newStatus, String codError, String discardFileName, String accessToken) {
try {
return processExecutionsApisHolder.getIngestionFlowFileEntityExtendedControllerApi(accessToken)
.updateStatus(ingestionFlowFileId, oldStatus.name(), newStatus.name() ,codError, discardFileName);
} catch (HttpClientErrorException e) {
if (e.getStatusCode() == HttpStatus.NOT_FOUND) {
return 0;
}
throw e;
.updateStatus(ingestionFlowFileId, oldStatus.name(), newStatus.name(), codError, discardFileName);
} catch (HttpClientErrorException.NotFound e) {
return 0;
}
}

public PagedModelIngestionFlowFile findByOrganizationIDFlowTypeCreateDate(Long organizationId, FlowFileTypeEnum flowFileType, OffsetDateTime creationDateFrom, String accessToken) {
LocalDateTime creationDateFromLocalDateTime = null;
if(creationDateFrom!=null){
if (creationDateFrom != null) {
creationDateFromLocalDateTime = creationDateFrom.atZoneSameInstant(Utilities.ZONEID).toLocalDateTime();
}
return processExecutionsApisHolder.getIngestionFlowFileSearchControllerApi(accessToken)
.crudIngestionFlowFilesFindByOrganizationIDFlowTypeCreateDate(String.valueOf(organizationId), List.of(flowFileType.getValue()), creationDateFromLocalDateTime, null,null, null, null, null, null, null);
.crudIngestionFlowFilesFindByOrganizationIDFlowTypeCreateDate(String.valueOf(organizationId), List.of(flowFileType.getValue()), creationDateFromLocalDateTime, null, null, null, null, null, null, null);
}

public PagedModelIngestionFlowFile findByOrganizationIDFlowTypeFilename(Long organizationId, FlowFileTypeEnum flowFileType, String fileName, String accessToken) {
return processExecutionsApisHolder.getIngestionFlowFileSearchControllerApi(accessToken)
.crudIngestionFlowFilesFindByOrganizationIDFlowTypeCreateDate(String.valueOf(organizationId), List.of(flowFileType.getValue()), null, null,null, fileName, null, null, null, null);
.crudIngestionFlowFilesFindByOrganizationIDFlowTypeCreateDate(String.valueOf(organizationId), List.of(flowFileType.getValue()), null, null, null, fileName, null, null, null, null);
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package it.gov.pagopa.payhub.activities.connector.classification.client;

import it.gov.pagopa.payhub.activities.connector.classification.config.PaymentsReportingApisHolder;
import it.gov.pagopa.pu.classification.dto.generated.CollectionModelPaymentsReporting;
import it.gov.pagopa.pu.classification.dto.generated.PaymentsReporting;
import it.gov.pagopa.pu.classification.client.generated.PaymentsReportingEntityExtendedControllerApi;
import it.gov.pagopa.pu.classification.client.generated.PaymentsReportingSearchControllerApi;
import it.gov.pagopa.pu.classification.dto.generated.CollectionModelPaymentsReporting;
import it.gov.pagopa.pu.classification.dto.generated.PaymentsReporting;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
Expand Down Expand Up @@ -115,7 +115,7 @@ void givenNotExistentPaymentsReportingWhenGetBySemanticKeyThenNull() {
when(paymentsReportingApisHolder.getPaymentsReportingSearchApi(accessToken))
.thenReturn(paymentsReportingSearchControllerApi);
when(paymentsReportingSearchControllerApi.crudPaymentsReportingFindBySemanticKey(orgId, iuv, iur, transferIndex))
.thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND));
.thenThrow(HttpClientErrorException.create(HttpStatus.NOT_FOUND, "NotFound", null, null, null));

// When
PaymentsReporting result = paymentsReportingClient.getBySemanticKey(orgId, iuv, iur, transferIndex, accessToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.web.client.HttpClientErrorException;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.*;

@ExtendWith(MockitoExtension.class)
Expand Down Expand Up @@ -71,7 +71,7 @@ void givenNotExistentTreasuryWhenFindByOrganizationIdAndIufThenNull() {
TreasurySearchControllerApi mockApi = mock(TreasurySearchControllerApi.class);
when(treasuryApisHolderMock.getTreasurySearchApi(accessToken)).thenReturn(mockApi);
when(mockApi.crudTreasuryGetByOrganizationIdAndIuf(organizationId, iuf))
.thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND));
.thenThrow(HttpClientErrorException.create(HttpStatus.NOT_FOUND, "NotFound", null, null, null));

// When
Treasury result = treasuryClient.findByOrganizationIdAndIuf(organizationId, iuf, accessToken);
Expand Down Expand Up @@ -111,7 +111,7 @@ void givenNotExistentTreasuryWhenGetByOrganizationIdAndBillCodeAndBillYearThenNu
TreasurySearchControllerApi mockApi = mock(TreasurySearchControllerApi.class);
when(treasuryApisHolderMock.getTreasurySearchApi(accessToken)).thenReturn(mockApi);
when(mockApi.crudTreasuryFindBySemanticKey(organizationId, billCode, billYear))
.thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND));
.thenThrow(HttpClientErrorException.create(HttpStatus.NOT_FOUND, "NotFound", null, null, null));

// When
Treasury result = treasuryClient.getBySemanticKey(organizationId, billCode, billYear, accessToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ void whenFindBySemanticKeyThenInvokeWithAccessToken() {
// Then
assertSame(expectedResult, result);
}

@Test
void givenNotExistentTransferWhenFindBySemanticKeyThenNull() {
// Given
Expand All @@ -80,7 +81,7 @@ void givenNotExistentTransferWhenFindBySemanticKeyThenNull() {
iur,
transferIndex,
null
)).thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND));
)).thenThrow(HttpClientErrorException.create(HttpStatus.NOT_FOUND, "NotFound", null, null, null));

// When
Transfer result = transferSearchClient.findBySemanticKey(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ void givenNotExistentOrganizationWhenFindByIpaCodeThenNull(){
Mockito.when(organizationApisHolderMock.getOrganizationSearchControllerApi(accessToken))
.thenReturn(organizationSearchControllerApiMock);
Mockito.when(organizationSearchControllerApiMock.crudOrganizationsFindByIpaCode(orgIpaCode))
.thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND));
.thenThrow(HttpClientErrorException.create(HttpStatus.NOT_FOUND, "NotFound", null, null, null));

// When
Organization result = organizationSearchClient.findByIpaCode(orgIpaCode, accessToken);
Expand Down Expand Up @@ -100,7 +100,7 @@ void givenNotExistentOrganizationWhenGetOrgFiscalCodeThenNull(){
Mockito.when(organizationApisHolderMock.getOrganizationSearchControllerApi(accessToken))
.thenReturn(organizationSearchControllerApiMock);
Mockito.when(organizationSearchControllerApiMock.crudOrganizationsFindByOrgFiscalCode(orgFiscalCode))
.thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND));
.thenThrow(HttpClientErrorException.create(HttpStatus.NOT_FOUND, "NotFound", null, null, null));

// When
Organization result = organizationSearchClient.findByOrgFiscalCode(orgFiscalCode, accessToken);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ void givenNotFoundWhenUpdateStatusThenOk() {
IngestionFlowFileEntityExtendedControllerApi mockApi = mock(IngestionFlowFileEntityExtendedControllerApi.class);
when(processExecutionsApisHolder.getIngestionFlowFileEntityExtendedControllerApi(accessToken)).thenReturn(mockApi);
when(mockApi.updateStatus(ingestionFlowFileId, oldStatus.name(), newStatus.name(), codError, discardFileName))
.thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND));
.thenThrow(HttpClientErrorException.create(HttpStatus.NOT_FOUND, "NotFound", null, null, null));

// When
Integer result = ingestionFlowFileClient.updateStatus(ingestionFlowFileId, oldStatus, newStatus, codError, discardFileName, accessToken);
Expand Down

0 comments on commit eb67c85

Please sign in to comment.