Skip to content

Commit

Permalink
Merge pull request #125 from BRP-API/74-wanneer-meerdere-bsns-opgevra…
Browse files Browse the repository at this point in the history
…agd-worden-en-1-van-de-bsns-bestaat-niet-komt-er-geen-resultaat-ook-niet-voor-de-wel-goed-bsns

74 wanneer meerdere bsns opgevraagd worden en 1 van de bsns bestaat niet komt er geen resultaat ook niet voor de wel goed bsns
  • Loading branch information
FrozenSync authored Oct 11, 2024
2 parents dd39fbd + 39b8ce8 commit 7053983
Show file tree
Hide file tree
Showing 12 changed files with 110 additions and 174 deletions.
24 changes: 0 additions & 24 deletions src/main/java/nl/rijksoverheid/mev/ExceptionHandlers.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import nl.rijksoverheid.mev.brpadapter.soap.BrpClient;
import nl.rijksoverheid.mev.exception.BrpException;
import nl.rijksoverheid.mev.exception.GezagException;
import nl.rijksoverheid.mev.gezagsmodule.domain.Persoonslijst;
import nl.rijksoverheid.mev.transaction.Transaction;
import nl.rijksoverheid.mev.transaction.TransactionHandler;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

/**
* Service voor BRP functionaliteit
Expand All @@ -28,35 +29,34 @@ public class BrpService {
/**
* Ophalen persoonslijst
*
* @param bsn de bsn om de persoonslijst voor op te halen
* @param bsn de bsn om de persoonslijst voor op te halen
* @param transaction de originele transactie
* @return de persoonslijst
* @throws GezagException wanneer BRP communicatie misgaat
*/
public Persoonslijst getPersoonslijst(final String bsn, final Transaction transaction) throws BrpException {
Persoonslijst persoonslijst = client.opvragenPersoonslijst(bsn, transaction);

if (persoonslijst == null || !persoonslijst.hasAnyValue()) {
throw new BrpException("Geen gezaghouders gevonden bij opgegeven BSN.");
}

return persoonslijst;
public Optional<Persoonslijst> getPersoonslijst(final String bsn, final Transaction transaction) {
return client.opvragenPersoonslijst(bsn, transaction);
}

/**
* Ophalen bsns van minderjarige kinderen
*
* @param bsn de bsn om de persoonslijst voor op te halen
* @param bsn de bsn om de persoonslijst voor op te halen
* @param transaction de originele transactie
* @return de BSNs van de kinderen
* @throws GezagException wanneer BRP communicatie misgaat
*/
public List<String> getBsnsMinderjarigeKinderen(final String bsn, final Transaction transaction) throws BrpException {
Persoonslijst persoonslijstOuder = client.opvragenPersoonslijst(bsn, transaction);
public List<String> getBsnsMinderjarigeKinderen(final String bsn, final Transaction transaction) {
List<String> bsns = new ArrayList<>();

Optional<Persoonslijst> persoonslijstOuder = client.opvragenPersoonslijst(bsn, transaction);
persoonslijstOuder.ifPresent(persoonslijst -> {
transaction.setReceivedId(persoonslijst.getReceivedId());
transactionHandler.saveBrpServiceTransaction(BRP_SERVICE_GET_BSNS_MINDERJARIGE_KINDEREN, persoonslijst.getReceivedId(), transaction);

transaction.setReceivedId(persoonslijstOuder.getReceivedId());
transactionHandler.saveBrpServiceTransaction(BRP_SERVICE_GET_BSNS_MINDERJARIGE_KINDEREN, persoonslijstOuder.getReceivedId(), transaction);
bsns.addAll(persoonslijst.getBurgerservicenummersVanMinderjarigeKinderen());
});

return persoonslijstOuder.getBurgerservicenummersVanMinderjarigeKinderen();
return bsns;
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package nl.rijksoverheid.mev.brpadapter.soap;

import nl.rijksoverheid.mev.exception.BrpException;
import nl.rijksoverheid.mev.gezagsmodule.domain.Persoonslijst;
import nl.rijksoverheid.mev.transaction.Transaction;

import java.util.Optional;

/**
* Client voor communicatie met de BRP
*/
Expand All @@ -16,8 +17,6 @@ public interface BrpClient {
* opgevraagd
* @param transaction de transactie zoals bij binnenkomst van het request
* @return de persoonslijst
* @throws BrpException wanneer een exceptie optreed bij de communicatie met
* de BRP
*/
Persoonslijst opvragenPersoonslijst(final String bsn, final Transaction transaction) throws BrpException;
Optional<Persoonslijst> opvragenPersoonslijst(final String bsn, final Transaction transaction);
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ public BrpFakeClient(@Value("${app.features.brp.dataset-path}") Path datasetPath
}

@Override
public Persoonslijst opvragenPersoonslijst(String bsn, Transaction transaction) throws GezagException {
public Optional<Persoonslijst> opvragenPersoonslijst(String bsn, Transaction transaction) throws GezagException {
if (!new BSNValidator().isValid(bsn)) {
return null;
return Optional.empty();
}
if (fixtures.containsKey(bsn)){
return fixtures.get(bsn).data;
return Optional.of(fixtures.get(bsn).data);
}
log.info("Persoonslijst niet gevonden: " + bsn);
return createEmptyPersoonslijstFixture("", bsn).data;
return Optional.of(createEmptyPersoonslijstFixture("", bsn).data);
}

private PersoonslijstFixture readAsPersoonslijstFixture(final InputStream inputStream) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package nl.rijksoverheid.mev.brpadapter.soap;

import nl.rijksoverheid.mev.brp.PersoonslijstFinder;
import nl.rijksoverheid.mev.exception.BrpException;
import nl.rijksoverheid.mev.gezagsmodule.domain.Persoonslijst;
import nl.rijksoverheid.mev.gezagsmodule.model.Burgerservicenummer;
import nl.rijksoverheid.mev.transaction.Transaction;
import org.springframework.context.annotation.Profile;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;

import java.util.Optional;

@Component
@Profile("real-brp")
public class BrpSqlClientAdapter implements BrpClient {
Expand All @@ -20,9 +21,8 @@ public BrpSqlClientAdapter(PersoonslijstFinder persoonslijstFinder) {
}

@Override
public Persoonslijst opvragenPersoonslijst(String bsn, Transaction transaction) throws BrpException {
public Optional<Persoonslijst> opvragenPersoonslijst(String bsn, Transaction transaction) {
var burgerservicenummer = new Burgerservicenummer(Long.parseLong(bsn));
return persoonslijstFinder.findPersoonslijst(burgerservicenummer)
.orElseThrow(() -> new BrpException(HttpStatus.NOT_FOUND, "Persoonslijst niet gevonden"));
return persoonslijstFinder.findPersoonslijst(burgerservicenummer);
}
}
23 changes: 0 additions & 23 deletions src/main/java/nl/rijksoverheid/mev/exception/BrpException.java

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import nl.rijksoverheid.mev.brpadapter.soap.persoonlijst.PersoonslijstVeld;
import nl.rijksoverheid.mev.brpadapter.soap.persoonlijst.PotentieelInOnderzoek;
import nl.rijksoverheid.mev.exception.AfleidingsregelException;
import nl.rijksoverheid.mev.exception.BrpException;

import java.lang.reflect.Field;
import java.time.Clock;
Expand Down Expand Up @@ -600,9 +599,9 @@ public boolean minderjarig() throws AfleidingsregelException {

/**
* @return of een van de velden een waarde heeft in de persoonslijst
* @throws BrpException als een invalide veld benaderd wordt
* @throws AfleidingsregelException als een invalide veld benaderd wordt
*/
public boolean hasAnyValue() throws BrpException {
public boolean hasAnyValue() throws AfleidingsregelException {
try {
for (Field f : this.getClass().getDeclaredFields()) {
if (f.getType() == List.class) {
Expand All @@ -618,7 +617,7 @@ public boolean hasAnyValue() throws BrpException {
}
return false;
} catch (IllegalAccessException ex) {
throw new BrpException(ex.getMessage());
throw new AfleidingsregelException(ex.getMessage(), "persoonslijst");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import lombok.extern.slf4j.Slf4j;
import nl.rijksoverheid.mev.exception.AfleidingsregelException;
import nl.rijksoverheid.mev.exception.BrpException;
import nl.rijksoverheid.mev.exception.VeldInOnderzoekException;
import nl.rijksoverheid.mev.gezagsmodule.domain.ARAntwoordenModel;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -52,9 +51,6 @@ public ARAntwoordenModel getARAntwoordenModel(final ARAntwoordenModel resultaat)
*/
public String findMatchingRoute(final ARAntwoordenModel arAntwoordenModel) {
if ((arAntwoordenModel.getException() != null)
&& (Objects.equals(arAntwoordenModel.getException().getClass(), BrpException.class))) {
return "-503i";
} else if ((arAntwoordenModel.getException() != null)
&& (Objects.equals(arAntwoordenModel.getException().getClass(), VeldInOnderzoekException.class))) {
return getRouteFromVraagModel(arAntwoordenModel);
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package nl.rijksoverheid.mev.gezagsmodule.service;

import nl.rijksoverheid.mev.exception.BrpException;
import nl.rijksoverheid.mev.exception.GezagException;
import nl.rijksoverheid.mev.gezagsmodule.domain.Persoonslijst;
import nl.rijksoverheid.mev.gezagsmodule.model.GezagAfleidingsResultaat;
Expand All @@ -11,7 +10,7 @@

public interface GezagService {

List<Gezagsrelatie> getGezag(final List<String> bsns, final Transaction transaction) throws BrpException;
List<Gezagsrelatie> getGezag(final List<String> bsns, final Transaction transaction);

GezagAfleidingsResultaat getGezagAfleidingsResultaat(final String bsn, final Transaction transaction) throws GezagException;

Expand Down
Loading

0 comments on commit 7053983

Please sign in to comment.