Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pc 478 meerdere contactmomenten registers klant #1042

Merged
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,28 @@ import {
type KlantBedrijfIdentifier,
} from "@/services/openklant2";
import { ensureKlantForBedrijfIdentifier as ensureKlantForBedrijfIdentifierOk1 } from "@/services/openklant1/service";
import { useOpenKlant2 } from "@/services/openklant2/service";
import {
fetchSystemen,
klantinteractieVersions,
} from "@/services/environment/fetch-systemen";
githubjimmeicatt marked this conversation as resolved.
Show resolved Hide resolved
import { mapBedrijfsIdentifier } from "@/services/openklant1/service";
import { useOrganisatieIds } from "@/stores/user";

export const ensureKlantForBedrijfIdentifier = async (
identifier: KlantBedrijfIdentifier,
bedrijfsnaam: string,
) => {
const isOpenKlant2 = await useOpenKlant2();
const systemen = await fetchSystemen();
githubjimmeicatt marked this conversation as resolved.
Show resolved Hide resolved
const defaultSysteem = systemen.find(({ isDefault }) => isDefault);

if (!defaultSysteem) {
throw new Error("Geen default register gevonden");
}

const useKlantInteractiesApi =
defaultSysteem.klantinteractieVersion === klantinteractieVersions.ok2;

if (isOpenKlant2) {
if (useKlantInteractiesApi) {
// Gebruik openklant2 implementatie
const klant = await findKlantByIdentifier(identifier);
return klant ?? (await createKlant(identifier));
Expand Down
34 changes: 24 additions & 10 deletions src/features/persoon/persoon-zoeken/ensure-klant-for-bsn.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,36 @@
import { ensureKlantForBsn as ensureKlantForBsn1 } from "@/services/openklant1";
import { findKlantByIdentifier, createKlant as createKlant2 } from "@/services/openklant2";
import { useOpenKlant2 } from "@/services/openklant2/service";
import { useOrganisatieIds } from "@/stores/user";
import {
findKlantByIdentifier,
createKlant as createKlant2,
} from "@/services/openklant2";
import {
fetchSystemen,
klantinteractieVersions,
} from "@/services/environment/fetch-systemen";
import { useOrganisatieIds } from "@/stores/user";

export const ensureKlantForBsn = async (
parameters: { bsn: string }
) => {
export const ensureKlantForBsn = async (parameters: { bsn: string }) => {
mstokericatt marked this conversation as resolved.
Show resolved Hide resolved
const systemen = await fetchSystemen();
const defaultSysteem = systemen.find(({ isDefault }) => isDefault);

const isOpenKlant2 = await useOpenKlant2();
if (!defaultSysteem) {
throw new Error("Geen default register gevonden");
}

const useKlantInteractiesApi =
defaultSysteem.klantinteractieVersion === klantinteractieVersions.ok2;

if (isOpenKlant2) {
if (useKlantInteractiesApi) {
// Gebruik openklant2 implementatie
return (await findKlantByIdentifier(parameters)) ?? (await createKlant2(parameters));
return (
(await findKlantByIdentifier(parameters)) ??
(await createKlant2(parameters))
);
} else {
// Gebruik openklant1 implementatie
const organisatieIds = useOrganisatieIds();
const bronorganisatie = organisatieIds.value[0] || "";

return await ensureKlantForBsn1(parameters, bronorganisatie);
}
};
Loading