-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #908 from Klantinteractie-Servicesysteem/feature/p…
…c-414-Featureswitch pc-414 featureswitch
- Loading branch information
Showing
32 changed files
with
1,222 additions
and
572 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
40 changes: 33 additions & 7 deletions
40
src/features/bedrijf/bedrijf-zoeken/ensure-klant-for-bedrijf-identifier.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,35 @@ | ||
import type { BedrijfIdentifier } from "@/services/kvk"; | ||
import { findKlantByIdentifier, createKlant } from "@/services/klanten"; | ||
import { | ||
findKlantByIdentifier, | ||
createKlant, | ||
type KlantBedrijfIdentifier, | ||
} from "@/services/openklant2"; | ||
import { ensureKlantForBedrijfIdentifier as ensureKlantForBedrijfIdentifierOk1 } from "@/services/openklant1/service"; | ||
import { useOpenKlant2 } from "@/services/openklant2/service"; | ||
import { mapBedrijfsIdentifier } from "@/services/openklant1/service"; | ||
import { useOrganisatieIds } from "@/stores/user"; | ||
|
||
//maak een klant aan in het klanten register als die nog niet bestaat | ||
//bijvoorbeeld om een contactmoment voor een in de kvk opgezocht bedrijf op te kunnen slaan | ||
export const ensureKlantForBedrijfIdentifier = async ( | ||
identifier: BedrijfIdentifier, | ||
) => | ||
(await findKlantByIdentifier(identifier)) ?? (await createKlant(identifier)); | ||
identifier: KlantBedrijfIdentifier, | ||
bedrijfsnaam: string, | ||
) => { | ||
const isOpenKlant2 = await useOpenKlant2(); | ||
|
||
if (isOpenKlant2) { | ||
// Gebruik openklant2 implementatie | ||
const klant = await findKlantByIdentifier(identifier); | ||
return klant ?? (await createKlant(identifier)); | ||
} else { | ||
// Gebruik openklant1 implementatie | ||
const mappedIdentifier = mapBedrijfsIdentifier(identifier); | ||
const organisatieIds = useOrganisatieIds(); | ||
const organisatieId = organisatieIds.value[0] || ""; | ||
|
||
return await ensureKlantForBedrijfIdentifierOk1( | ||
{ | ||
bedrijfsnaam, | ||
identifier: mappedIdentifier, | ||
}, | ||
organisatieId, | ||
); | ||
} | ||
}; |
27 changes: 21 additions & 6 deletions
27
src/features/bedrijf/bedrijf-zoeken/use-klant-by-bedrijf-identifier.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,40 @@ | ||
import { ServiceResult } from "@/services"; | ||
import { | ||
mapBedrijfsIdentifier, | ||
useKlantByIdentifier, | ||
} from "@/services/openklant1/service"; | ||
import { | ||
findKlantByIdentifier, | ||
type KlantBedrijfIdentifier, | ||
} from "@/services/klanten"; | ||
useOpenKlant2, | ||
} from "@/services/openklant2"; | ||
|
||
export const useKlantByBedrijfIdentifier = ( | ||
getId: () => KlantBedrijfIdentifier | undefined, | ||
) => { | ||
const getCacheKey = () => { | ||
const id = getId(); | ||
if (!id) return ""; | ||
return "klant" + JSON.stringify(getId()); | ||
return "klant" + JSON.stringify(id); | ||
}; | ||
const findKlant = () => { | ||
|
||
const findKlant = async () => { | ||
const id = getId(); | ||
if (!id) { | ||
throw new Error(); | ||
throw new Error("Geen valide KlantBedrijfIdentifier"); | ||
} | ||
|
||
const isOpenKlant2 = await useOpenKlant2(); | ||
|
||
if (isOpenKlant2) { | ||
return findKlantByIdentifier(id); | ||
} else { | ||
const mappedId = mapBedrijfsIdentifier(id); | ||
return useKlantByIdentifier(() => mappedId); | ||
} | ||
return findKlantByIdentifier(id); | ||
}; | ||
return ServiceResult.fromFetcher("", findKlant, { | ||
|
||
return ServiceResult.fromFetcher(getCacheKey(), findKlant, { | ||
getUniqueId: getCacheKey, | ||
}); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.