use of org.folio.inventory.exceptions.UnprocessableEntityException in project mod-inventory by folio-org.
the class Holdings method refuseWhenBlockedFieldsChanged.
private CompletionStage<HoldingsRecord> refuseWhenBlockedFieldsChanged(HoldingsRecord existingHoldings, HoldingsRecord updatedHoldings) {
if (isHoldingsControlledByRecord(existingHoldings) && areHoldingsBlockedFieldsChanged(existingHoldings, updatedHoldings)) {
var errorMessage = BLOCKED_FIELDS_UPDATED_ERROR_MSG + StringUtils.join(config.getHoldingsBlockedFields(), COMMA);
LOGGER.error(errorMessage);
return failedFuture(new UnprocessableEntityException(errorMessage, null, null));
}
return completedFuture(existingHoldings);
}
use of org.folio.inventory.exceptions.UnprocessableEntityException in project mod-inventory by folio-org.
the class EndpointFailureHandler method handleFailure.
public static void handleFailure(Throwable failure, RoutingContext context) {
final Throwable failureToHandle = getKnownException(failure);
if (failureToHandle instanceof UnprocessableEntityException) {
UnprocessableEntityException validationFailure = (UnprocessableEntityException) failureToHandle;
unprocessableEntity(context.response(), validationFailure.getMessage(), validationFailure.getPropertyName(), validationFailure.getPropertyValue());
} else if (failureToHandle instanceof NotFoundException) {
ClientErrorResponse.notFound(context.response(), failureToHandle.getMessage());
} else if (failureToHandle instanceof ExternalResourceFetchException) {
final ExternalResourceFetchException externalException = (ExternalResourceFetchException) failureToHandle;
forward(context.response(), externalException.getBody(), externalException.getStatusCode(), externalException.getContentType());
} else {
ServerErrorResponse.internalError(context.response(), failureToHandle);
}
}
use of org.folio.inventory.exceptions.UnprocessableEntityException in project mod-inventory by folio-org.
the class Instances method refuseWhenBlockedFieldsChanged.
private CompletionStage<Instance> refuseWhenBlockedFieldsChanged(Instance existingInstance, Instance updatedInstance) {
if (isInstanceControlledByRecord(existingInstance) && areInstanceBlockedFieldsChanged(existingInstance, updatedInstance)) {
String errorMessage = BLOCKED_FIELDS_UPDATE_ERROR_MESSAGE + StringUtils.join(config.getInstanceBlockedFields(), COMMA);
log.error(errorMessage);
return failedFuture(new UnprocessableEntityException(errorMessage, null, null));
}
return completedFuture(existingInstance);
}
Aggregations