Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
### Features
* Migrate Package Endpoints to HoldingsIQ v2 API ([MODKBEKBJ-804](https://folio-org.atlassian.net/browse/MODKBEKBJ-804))
* Add additional fields to POST /eholdings/packages endpoint ([MODKBEKBJ-823](https://folio-org.atlassian.net/browse/MODKBEKBJ-823))
* Update visibility hidden reason handling ([MODKBEKBJ-823](https://folio-org.atlassian.net/browse/MODKBEKBJ-823))

### Bug fixes
* Fix offset handling when retrieving holdings from HoldingsIQ. ([MODKBEKBJ-825](https://folio-org.atlassian.net/browse/MODKBEKBJ-825))
Expand Down
4 changes: 2 additions & 2 deletions ramls/types/visibilityData.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
"isHidden": {
"type": "boolean",
"description": "Whether resource is hidden or not",
"example": false
"example": true
},
"reason": {
"type": "string",
"description": "Reason why resource is hidden",
"example": "Set by System"
"example": "Hidden by Customer"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@
import org.folio.holdingsiq.model.Proxy;
import org.folio.holdingsiq.model.Visibility;
import org.folio.rest.jaxrs.model.PackagePutDataAttributes;
import org.folio.rest.jaxrs.model.PackageVisibility;

public abstract class CommonPackagePutRequestConverter {

static final String HIDDEN_BY_CUSTOMER = "Hidden by Customer";

protected PackagePut.PackagePutBuilder convertCommonAttributes(PackagePutDataAttributes attributes) {
var builder = PackagePut.builder();

Expand All @@ -29,12 +32,16 @@ protected PackagePut.PackagePutBuilder convertCommonAttributes(PackagePutDataAtt
builder.customAltNames(convertCustomAltNames(attributes));
}

builder.visibilityDetails(mapItems(attributes.getVisibility(),
pv -> new Visibility(pv.getCategory().value(), pv.getHidden(), pv.getReason())));
builder.visibilityDetails(mapItems(attributes.getVisibility(), this::convertVisibility));

return builder;
}

protected Visibility convertVisibility(PackageVisibility pv) {
var reason = Boolean.TRUE.equals(pv.getHidden()) ? HIDDEN_BY_CUSTOMER : null;
return new Visibility(pv.getCategory().value(), pv.getHidden(), reason);
}

private void convertSimpleFields(PackagePutDataAttributes attributes, PackagePut.PackagePutBuilder builder) {
builder.isSelected(attributes.getIsSelected());
builder.isFullPackage(attributes.getIsFullPackage());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package org.folio.rest.converter.packages;

import static org.folio.rest.converter.packages.CommonPackagePutRequestConverter.HIDDEN_BY_CUSTOMER;
import static org.folio.util.PackagesTestUtil.getPackagePutRequest;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.util.List;
Expand Down Expand Up @@ -63,6 +66,23 @@ void shouldCreateRequestToChangeCustomPackageVisibility() {
.withHidden(true)
.withCategory(PackageVisibility.Category.PF)))
));
assertTrue(packagePut.getVisibilityDetails().getFirst().hidden());
var visibility = packagePut.getVisibilityDetails().getFirst();
assertTrue(visibility.hidden());
assertEquals(HIDDEN_BY_CUSTOMER, visibility.reason());
}

@Test
void shouldIgnoreIncomingReasonAndClearReasonWhenHiddenFalse() {
var packagePut =
converter.convert(getPackagePutRequest(
new PackagePutDataAttributes()
.withVisibility(List.of(new PackageVisibility()
.withHidden(false)
.withReason("some incoming reason")
.withCategory(PackageVisibility.Category.PF)))
));
var visibility = packagePut.getVisibilityDetails().getFirst();
assertFalse(visibility.hidden());
assertNull(visibility.reason());
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package org.folio.rest.converter.packages;

import static org.folio.rest.converter.packages.CommonPackagePutRequestConverter.HIDDEN_BY_CUSTOMER;
import static org.folio.util.PackagesTestUtil.getPackagePutRequest;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.util.List;
Expand Down Expand Up @@ -31,7 +34,24 @@ void shouldCreateRequestToHidePackage() {
.withHidden(true)
.withCategory(PackageVisibility.Category.PF)))
));
assertTrue(packagePut.getVisibilityDetails().getFirst().hidden());
var visibility = packagePut.getVisibilityDetails().getFirst();
assertTrue(visibility.hidden());
assertEquals(HIDDEN_BY_CUSTOMER, visibility.reason());
}

@Test
void shouldIgnoreIncomingReasonAndClearReasonWhenHiddenFalse() {
var packagePut = converter.convert(getPackagePutRequest(
new PackagePutDataAttributes()
.withIsSelected(true)
.withVisibility(List.of(new PackageVisibility()
.withHidden(false)
.withReason("some incoming reason")
.withCategory(PackageVisibility.Category.PF)))
));
var visibility = packagePut.getVisibilityDetails().getFirst();
assertFalse(visibility.hidden());
assertNull(visibility.reason());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
{
"category": "PF",
"hidden": true,
"reason": "Hidden by customer"
"reason": "Hidden by Customer"
}
],
"customDescription": null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
{
"category": "PF",
"hidden": false,
"reason": "Hidden by customer"
"reason": null
},
{
"category": "FTF",
"hidden": true,
"reason": null
"reason": "Hidden by Customer"
},
{
"category": "MARC",
"hidden": true,
"reason": null
"reason": "Hidden by Customer"
}
],
"customDescription": "Custom description",
Expand Down
Loading