Skip to content

Commit

Permalink
MODBULKOPS-334 Fixed according to the comments
Browse files Browse the repository at this point in the history
  • Loading branch information
obozhko-folio committed Oct 17, 2024
1 parent aec5711 commit 5265448
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,16 @@ public List<HoldingsNote> convertToObject(String value) {

@Override
public String convertToString(List<HoldingsNote> object) {
var str = object.stream()
return object.stream()
.filter(Objects::nonNull)
.map(note -> {
var noteTypeName = note.getHoldingsNoteTypeName();
if (isNull(noteTypeName)) {
noteTypeName = "";
try {
noteTypeName = HoldingsReferenceHelper.service().getNoteTypeNameById(note.getHoldingsNoteTypeId());
} catch (NotFoundException e) {
log.error("Holding note type with id = {} not found : {}", note.getHoldingsNoteTypeId(), e.getMessage());
noteTypeName = "";
}
}
return String.join(ARRAY_DELIMITER,
Expand All @@ -64,9 +64,7 @@ public String convertToString(List<HoldingsNote> object) {
booleanToStringNullSafe(note.getStaffOnly()),
note.getTenantId(),
note.getHoldingsNoteTypeId());
})
.collect(Collectors.joining(ITEM_DELIMITER));
return str;
}).collect(Collectors.joining(ITEM_DELIMITER));
}

private HoldingsNote restoreHoldingsNote(String s) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,11 @@ public String convertToString(List<ItemNote> object) {
.map(itemNote -> {
var noteTypeName = itemNote.getItemNoteTypeName();
if (isNull(noteTypeName)) {
noteTypeName = "";
try {
noteTypeName = ItemReferenceHelper.service().getNoteTypeNameById(itemNote.getItemNoteTypeId(), itemNote.getTenantId());
} catch (NotFoundException e) {
log.error("Item note type with id = {} not found : {}", itemNote.getItemNoteTypeId(), e.getMessage());
noteTypeName = "";
}
}
return String.join(ARRAY_DELIMITER,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import static org.folio.bulkops.util.FolioExecutionContextUtil.prepareContextForTenant;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.regex.Pattern;
Expand Down Expand Up @@ -94,8 +95,8 @@ public Updater<ExtendedHoldingsRecord> updater(UpdateOptionType option, Action a
} else if (REPLACE_WITH == action.getType()) {
return extendedHoldingsRecord -> {
var locationId = action.getUpdated();
var tenant = getTenantFromAction(action);
if (forPreview) {
var tenant = getTenantFromAction(action);
locationId += ARRAY_DELIMITER + tenant;
}
if (PERMANENT_LOCATION == option) {
Expand Down Expand Up @@ -133,15 +134,14 @@ private void validateReplacement(UpdateOptionType option, Action action) throws
throw new RuleValidationException("UUID has invalid format: %s" + newId);
}

var tenant = getTenantFromAction(action);
if (Set.of(PERMANENT_LOCATION, TEMPORARY_LOCATION).contains(option)) {
var tenant = getTenantFromAction(action);
try (var ignored = new FolioExecutionContextSetter(prepareContextForTenant(tenant, folioModuleMetadata, folioExecutionContext))) {
itemReferenceService.getLocationById(newId, tenant);
} catch (Exception e) {
throw new RuleValidationException(format("Location %s doesn't exist", newId));
}
} else if (ELECTRONIC_ACCESS_URL_RELATIONSHIP.equals(option)) {
var tenant = getTenantFromAction(action);
try (var ignored = new FolioExecutionContextSetter(prepareContextForTenant(tenant, folioModuleMetadata, folioExecutionContext))) {
electronicAccessReferenceService.getRelationshipNameById(newId, tenant);
} catch (Exception e) {
Expand Down Expand Up @@ -205,8 +205,7 @@ public Class<ExtendedHoldingsRecord> getProcessedType() {
private boolean ruleTenantsAreNotValid(BulkOperationRule rule, Action action, UpdateOptionType option, ExtendedHoldingsRecord extendedHolding) {
var ruleTenants = rule.getRuleDetails().getTenants();
var actionTenants = action.getTenants();
if (nonNull(ruleTenants) && !ruleTenants.isEmpty() && nonNull(actionTenants) && !actionTenants.isEmpty()) {
ruleTenants.retainAll(actionTenants);
if (isThereIntersectionBetween(ruleTenants, actionTenants)) {
return !ruleTenants.contains(extendedHolding.getTenant());
}
if (nonNull(ruleTenants) && nonNull(actionTenants) && ruleTenants.isEmpty() && actionTenants.isEmpty() &&
Expand All @@ -216,4 +215,12 @@ private boolean ruleTenantsAreNotValid(BulkOperationRule rule, Action action, Up
return nonNull(ruleTenants) && !ruleTenants.isEmpty() && !ruleTenants.contains(extendedHolding.getTenant()) ||
nonNull(actionTenants) && !actionTenants.isEmpty() && !actionTenants.contains(extendedHolding.getTenant());
}

private boolean isThereIntersectionBetween(List<String> ruleTenants, List<String> actionTenants) {
if (nonNull(ruleTenants) && !ruleTenants.isEmpty() && nonNull(actionTenants) && !actionTenants.isEmpty()) {
ruleTenants.retainAll(actionTenants);
return true;
}
return false;
}
}

0 comments on commit 5265448

Please sign in to comment.