Skip to content

Commit

Permalink
feat(pool): eclipse-tractusx#556 Upsert Business Partners from Cleani…
Browse files Browse the repository at this point in the history
…ng Result

- refactor validation
  • Loading branch information
rainer-exxcellent committed Nov 14, 2023
1 parent 44fcec5 commit 70af9be
Show file tree
Hide file tree
Showing 4 changed files with 376 additions and 330 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,9 @@ class BusinessPartnerBuildService(
logger.info { "Create ${requests.size} new legal entities" }


val errorsByRequest = requestValidationService.validateLegalEntityCreates(requests.associateWith { it.legalEntity })
val errorsByRequestAddress =
requestValidationService.validateLegalEntityCreatesAddresses(requests.associateWith { it.legalAddress })

val errors = errorsByRequest.flatMap { it.value } + errorsByRequestAddress.flatMap { it.value }
val validRequests = requests.filterNot { errorsByRequest.containsKey(it) || errorsByRequestAddress.containsKey(it) }
val errorsByRequest = requestValidationService.validateLegalEntityCreates(requests)
val errors = errorsByRequest.flatMap { it.value }
val validRequests = requests.filterNot { errorsByRequest.containsKey(it) }

val legalEntityMetadataMap = metadataService.getMetadata(requests.map { it.legalEntity }).toMapping()
val addressMetadataMap = metadataService.getMetadata(requests.map { it.legalAddress }).toMapping()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,22 @@ class MetadataService(
return AddressMetadataDto(idTypes, regions)
}

fun getRegions(requests: Collection<IBaseLogisticAddressDto>): Set<Region> {

val regionKeys = requests.mapNotNull { it.physicalPostalAddress?.adminLevel1Key() }
.plus(requests.mapNotNull { it.alternativePostalAddress?.adminLevel1Key() })
.toSet()
val regions = regionRepository.findByRegionCodeIn(regionKeys)
return regions
}

fun getIdentifiers(requests: Collection<IBaseLogisticAddressDto>): Set<IdentifierType> {
val idTypeKeys = requests.flatMap { it.identifiers }.map { it.type }.toSet()
val idTypes = identifierTypeRepository.findByBusinessPartnerTypeAndTechnicalKeyIn(IdentifierBusinessPartnerType.ADDRESS, idTypeKeys)
return idTypes
}


/**
* If no country rule exists use default rules
*/
Expand Down

0 comments on commit 70af9be

Please sign in to comment.