Skip to content

Commit

Permalink
[#2863] When retrieving eHerkenning-cases, filter on either vestiging…
Browse files Browse the repository at this point in the history
…snummer or rsin/kvk, but not both
  • Loading branch information
alextreme committed Nov 12, 2024
1 parent a7ce5c9 commit 5b268e3
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -665,7 +665,6 @@ def test_categories_based_on_cases_for_eherkenning_user_with_vestigingsnummer(
furl(f"{ZAKEN_ROOT}zaken")
.add(
{
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId": identifier,
"maximaleVertrouwelijkheidaanduiding": VertrouwelijkheidsAanduidingen.beperkt_openbaar,
"rol__betrokkeneIdentificatie__vestiging__vestigingsNummer": "1234",
}
Expand Down
31 changes: 20 additions & 11 deletions src/open_inwoner/openzaak/clients.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,19 @@ def fetch_cases(
return self.fetch_cases_by_bsn(
user_bsn, max_requests=max_requests, identificatie=identificatie
)

if user_kvk or user_rsin:
user_kvk_or_rsin = user_rsin if user_rsin else user_kvk
return self.fetch_cases_by_kvk_or_rsin(
user_kvk_or_rsin,
if vestigingsnummer:
return self.fetch_cases_for_company(
max_requests=max_requests,
zaak_identificatie=identificatie,
vestigingsnummer=vestigingsnummer,
)
if user_kvk or user_rsin:
user_kvk_or_rsin = user_rsin if user_rsin else user_kvk
return self.fetch_cases_for_company(
kvk_or_rsin=user_kvk_or_rsin,
max_requests=max_requests,
zaak_identificatie=identificatie
)
return []

@cache_result(
Expand Down Expand Up @@ -142,36 +146,41 @@ def fetch_cases_by_bsn(
"{self.base_url}:cases:{kvk_or_rsin}:{vestigingsnummer}:{max_requests}:{zaak_identificatie}",
timeout=settings.CACHE_ZGW_ZAKEN_TIMEOUT,
)
def fetch_cases_by_kvk_or_rsin(
def fetch_cases_for_company(
self,
kvk_or_rsin: str | None,
kvk_or_rsin: str | None = None,
max_requests: int | None = 4,
zaak_identificatie: str | None = None,
vestigingsnummer: str | None = None,
) -> list[Zaak]:
"""
retrieve cases for particular company with allowed confidentiality level
:param kvk_or_rsin: - used to filter the cases by a KVK number or RSIN (configured via OpenZaakConfig)
:param max_requests: - used to limit the number of requests to list_zaken resource.
:param zaak_identificatie: - used to filter the cases by a unique Zaak identification number
:param vestigingsnummer: - used to filter the cases by a vestigingsnummer
"""
if not kvk_or_rsin:
return []

config = OpenZaakConfig.get_solo()

params = {
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId": kvk_or_rsin,
"maximaleVertrouwelijkheidaanduiding": config.zaak_max_confidentiality,
}

if vestigingsnummer:
params.update(
{
"rol__betrokkeneIdentificatie__vestiging__vestigingsNummer": vestigingsnummer,
}
)
elif kvk_or_rsin:
params.update(
{
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId": kvk_or_rsin,
}
)
else:
return []

if zaak_identificatie:
params.update({"identificatie": zaak_identificatie})
Expand Down
6 changes: 1 addition & 5 deletions src/open_inwoner/openzaak/tests/test_cases.py
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,6 @@ def _setUpMocks(self, m):
furl(f"{self.zaken_root}zaken")
.add(
{
"rol__betrokkeneIdentificatie__nietNatuurlijkPersoon__innNnpId": identifier,
"maximaleVertrouwelijkheidaanduiding": VertrouwelijkheidsAanduidingen.beperkt_openbaar,
"rol__betrokkeneIdentificatie__vestiging__vestigingsNummer": "1234",
}
Expand Down Expand Up @@ -840,13 +839,10 @@ def test_list_cases_for_eherkenning_user_with_vestigingsnummer(self, m):
else self.eherkenning_user.kvk
)

self.assertEqual(len(list_zaken_req.qs), 3)
self.assertEqual(len(list_zaken_req.qs), 2)
self.assertEqual(
list_zaken_req.qs,
{
"rol__betrokkeneidentificatie__nietnatuurlijkpersoon__innnnpid": [
identifier
],
"maximalevertrouwelijkheidaanduiding": [
VertrouwelijkheidsAanduidingen.beperkt_openbaar
],
Expand Down

0 comments on commit 5b268e3

Please sign in to comment.