Skip to content

Commit a928a87

Browse files
committed
task(/series/search/by_catalog): implement the simplest search by catalog number in user's collection.
Part of php-coder#673 Fix php-coder#1098
1 parent 4e398bc commit a928a87

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/main/java/ru/mystamps/web/feature/series/SeriesController.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
import java.util.Locale;
7373
import java.util.Map;
7474
import java.util.Objects;
75+
import java.util.stream.Collectors;
7576

7677
import static ru.mystamps.web.common.ControllerUtils.redirectTo;
7778

@@ -470,10 +471,12 @@ public String processAskForm(
470471
public String searchSeriesByCatalog(
471472
@RequestParam(name = "catalogNumber", defaultValue = "") String catalogNumber,
472473
@RequestParam(name = "catalogName", defaultValue = "") String catalogName,
474+
@RequestParam(name = "inCollection", defaultValue = "false") Boolean inCollection,
475+
@CurrentUser Integer currentUserId,
473476
Model model,
474477
Locale userLocale,
475478
RedirectAttributes redirectAttributes) {
476-
479+
477480
if (StringUtils.isBlank(catalogNumber)) {
478481
redirectAttributes.addFlashAttribute("numberIsEmpty", true);
479482
return "redirect:" + SiteUrl.INDEX_PAGE;
@@ -504,6 +507,18 @@ public String searchSeriesByCatalog(
504507
series = Collections.emptyList();
505508
break;
506509
}
510+
511+
if (Features.SEARCH_IN_COLLECTION.isActive()
512+
&& inCollection
513+
&& currentUserId != null) {
514+
series = series
515+
.stream()
516+
.filter(
517+
e -> collectionService.isSeriesInCollection(currentUserId, e.getId())
518+
)
519+
.collect(Collectors.toList());
520+
}
521+
507522
model.addAttribute("searchResults", series);
508523

509524
return "series/search_result";

0 commit comments

Comments
 (0)