Skip to content

Commit

Permalink
MODORDERS-1218. Improve logging for change instance connection (#1052)
Browse files Browse the repository at this point in the history
* MODORDERS-1218. Improve logging for change instance connection
  • Loading branch information
SerhiiNosko authored Nov 20, 2024
1 parent 7e13e49 commit f796e85
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,13 @@ public OrderLinePatchOperationService(RestClient restClient,
}

public Future<Void> patch(String lineId, PatchOrderLineRequest request, RequestContext requestContext) {
logger.info("patch:: start patching operation: {} for poLineId: {}", request.getOperation(), lineId);
String newInstanceId = request.getReplaceInstanceRef().getNewInstanceId();
return inventoryInstanceManager.createShadowInstanceIfNeeded(newInstanceId, requestContext)
.compose(v -> patchOrderLine(request, lineId, requestContext))
.compose(v -> updateInventoryInstanceInformation(request, lineId, requestContext));
.compose(v -> updateInventoryInstanceInformation(request, lineId, requestContext))
.onSuccess(v -> logger.info("patch:: successfully patched operation: {} for poLineId: {}", request.getOperation(), lineId))
.onFailure(e -> logger.error("Failed to patch operation: {} for poLineId: {}", request.getOperation(), lineId, e));
}

private Future<Void> patchOrderLine(PatchOrderLineRequest request, String lineId, RequestContext requestContext) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import io.vertx.core.Future;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.folio.models.orders.lines.update.OrderLineUpdateInstanceHolder;
import org.folio.okapi.common.GenericCompositeFuture;
import org.folio.orders.utils.RequestContextUtil;
Expand All @@ -14,6 +16,8 @@

public abstract class BaseOrderLineUpdateInstanceStrategy implements OrderLineUpdateInstanceStrategy {

private static final Logger logger = LogManager.getLogger(BaseOrderLineUpdateInstanceStrategy.class);

InventoryInstanceManager inventoryInstanceManager;
InventoryItemManager inventoryItemManager;
InventoryHoldingManager inventoryHoldingManager;
Expand Down Expand Up @@ -46,7 +50,9 @@ Future<Void> deleteAbandonedHoldings(boolean isDeleteAbandonedHoldings, PoLine p
.filter(location -> StringUtils.isNotEmpty(location.getHoldingId()))
.map(location -> {
var locationContext = RequestContextUtil.createContextWithNewTenantId(requestContext, location.getTenantId());
return deleteHoldingWithoutItems(location.getHoldingId(), locationContext);
return deleteHoldingWithoutItems(location.getHoldingId(), locationContext)
.onSuccess(v -> logger.info("deleteAbandonedHoldings:: operation succeeded for holdingId: {}", location.getHoldingId()))
.onFailure(e -> logger.error("Failed to delete abandoned holdings for holdingId: {}", location.getHoldingId(), e));
}).toList()
)
.mapEmpty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ protected Future<Void> processHoldings(OrderLineUpdateInstanceHolder holder, Req

private Future<Void> moveHoldings(OrderLineUpdateInstanceHolder holder, String newInstanceId, RequestContext requestContext) {
PoLine poLine = holder.getStoragePoLine();
logger.info("moveHoldings:: start processing for poLineId: {} and new instanceId: {}", poLine.getId(), newInstanceId);
CompositePoLine compPOL = PoLineCommonUtil.convertToCompositePoLine(poLine);
return pieceStorageService.getPiecesByPoLineId(compPOL, requestContext)
.map(pieces -> getHoldingsByTenants(holder, pieces, requestContext))
Expand All @@ -93,7 +94,11 @@ private Future<Void> moveHoldings(OrderLineUpdateInstanceHolder holder, String n
removeHoldingUnrecognizedFields(holdings);
var locationContext = RequestContextUtil.createContextWithNewTenantId(requestContext, entry.getKey());
return inventoryInstanceManager.createShadowInstanceIfNeeded(newInstanceId, locationContext)
.compose(instance -> inventoryHoldingManager.updateInstanceForHoldingRecords(holdings, newInstanceId, locationContext));
.compose(instance -> inventoryHoldingManager.updateInstanceForHoldingRecords(holdings, newInstanceId, locationContext))
.onSuccess(v -> logger.info("moveHoldings:: {} holdings for tenantId: {} have been updated with new instanceId: {}",
holdings.size(), entry.getKey(), newInstanceId))
.onFailure(e -> logger.error("Failed to update holdings for tenantId: {} with new instanceId: {}",
entry.getKey(), newInstanceId, e));
}))
.toList();
return GenericCompositeFuture.all(updateHoldings).mapEmpty();
Expand Down Expand Up @@ -227,7 +232,10 @@ private Future<Map<String, List<Location>>> retrieveUniqueLocations(PoLine poLin

private Future<Void> updateItemsHolding(String holdingId, String newHoldingId, String poLineId, RequestContext requestContext) {
return inventoryItemManager.getItemsByHoldingIdAndOrderLineId(holdingId, poLineId, requestContext)
.compose(items -> updateItemsInInventory(items, newHoldingId, requestContext));
.compose(items -> updateItemsInInventory(items, newHoldingId, requestContext))
.onSuccess(v -> logger.info("updateItemsHolding:: existing items for holdingId: {} have been updated with new holdingId: {}",
holdingId, newHoldingId))
.onFailure(e -> logger.error("Failed to update items for holdingId: {} with new holdingId: {}", holdingId, newHoldingId, e));
}

private Future<Void> updateItemsInInventory(List<JsonObject> items, String newHoldingId, RequestContext requestContext) {
Expand Down

0 comments on commit f796e85

Please sign in to comment.