Skip to content

Commit e5c6d4e

Browse files
committed
task(/series/SeriesController) : Search by catalog number in user's collection
Part of #673 Fix #1098
1 parent 4e398bc commit e5c6d4e

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
2323
import org.springframework.http.HttpStatus;
2424
import org.springframework.security.core.annotation.AuthenticationPrincipal;
25+
import org.springframework.security.core.context.SecurityContextHolder;
2526
import org.springframework.stereotype.Controller;
2627
import org.springframework.ui.Model;
2728
import org.springframework.validation.BindingResult;
@@ -72,6 +73,7 @@
7273
import java.util.Locale;
7374
import java.util.Map;
7475
import java.util.Objects;
76+
import java.util.stream.Collectors;
7577

7678
import static ru.mystamps.web.common.ControllerUtils.redirectTo;
7779

@@ -470,10 +472,12 @@ public String processAskForm(
470472
public String searchSeriesByCatalog(
471473
@RequestParam(name = "catalogNumber", defaultValue = "") String catalogNumber,
472474
@RequestParam(name = "catalogName", defaultValue = "") String catalogName,
475+
@RequestParam(name = "inCollection", defaultValue = "false") Boolean inCollection,
476+
@CurrentUser Integer currentUserId,
473477
Model model,
474478
Locale userLocale,
475479
RedirectAttributes redirectAttributes) {
476-
480+
477481
if (StringUtils.isBlank(catalogNumber)) {
478482
redirectAttributes.addFlashAttribute("numberIsEmpty", true);
479483
return "redirect:" + SiteUrl.INDEX_PAGE;
@@ -504,6 +508,18 @@ public String searchSeriesByCatalog(
504508
series = Collections.emptyList();
505509
break;
506510
}
511+
512+
if (Features.SEARCH_IN_COLLECTION.isActive()
513+
&& inCollection
514+
&& SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
515+
series = series
516+
.stream()
517+
.filter(
518+
e->collectionService.isSeriesInCollection(currentUserId, e.getId())
519+
)
520+
.collect(Collectors.toList());
521+
}
522+
507523
model.addAttribute("searchResults", series);
508524

509525
return "series/search_result";

0 commit comments

Comments
 (0)