Skip to content

Commit 810c6d9

Browse files
committed
Correctly ensure stock is selected in query
This ensures that the discounted title can always be calculated, if selected.
1 parent 0454d8d commit 810c6d9

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

srv/src/main/java/my/bookshop/handlers/CatalogServiceHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,13 @@ class CatalogServiceHandler implements EventHandler {
7272
}
7373

7474
@Before(entity = Books_.CDS_NAME)
75-
public void beforeReadBooks(CdsReadEventContext context) {
75+
public void alwaysSelectStock(CdsReadEventContext context) {
7676
CqnSelect copy = CQL.copy(context.getCqn(), new Modifier() {
7777
@Override
7878
public List<CqnSelectListItem> items(List<CqnSelectListItem> items) {
79-
CqnSelectListItem stock = CQL.get("stock");
80-
if (!items.contains(stock)) {
81-
items.add(stock);
79+
var paths = items.stream().filter(i -> i.isRef()).map(i -> i.asRef().path()).collect(Collectors.toSet());
80+
if (paths.contains(Books.TITLE) && !paths.contains(Books.STOCK)) {
81+
items.add(CQL.get(Books.STOCK));
8282
}
8383
return items;
8484
}

srv/src/main/java/my/bookshop/health/AppActuator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import java.util.LinkedHashMap;
44
import java.util.Map;
5-
65
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
76
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
87
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -14,7 +13,7 @@
1413
*/
1514
@Component
1615
@ConditionalOnClass(Endpoint.class)
17-
@Endpoint(id = "bookshop", enableByDefault = true)
16+
@Endpoint(id = "bookshop")
1817
public class AppActuator {
1918

2019
@ReadOperation

0 commit comments

Comments
 (0)