Skip to content

Commit

Permalink
AddRemoveBoxesController code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
maxcom committed Nov 8, 2024
1 parent 03fa3b2 commit e652464
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 52 deletions.
6 changes: 1 addition & 5 deletions src/main/java/ru/org/linux/site/tags/BoxListTag.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@

package ru.org.linux.site.tags;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import jakarta.servlet.jsp.tagext.BodyTagSupport;
import ru.org.linux.site.DefaultProfile;
import ru.org.linux.site.Template;
Expand All @@ -38,9 +36,7 @@ public void setVar(String var) {
public int doStartTag() {
Template t = Template.getTemplate();

List<String> boxnames = ImmutableList.copyOf(
Iterables.filter(t.getProf().getBoxlets(), DefaultProfile.boxPredicate()::test)
);
List<String> boxnames = t.getProf().getBoxlets().stream().filter(DefaultProfile::isBox).toList();

pageContext.setAttribute(var, boxnames);
return EVAL_BODY_INCLUDE;
Expand Down
37 changes: 18 additions & 19 deletions src/main/java/ru/org/linux/user/AddRemoveBoxesController.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 1998-2022 Linux.org.ru
* Copyright 1998-2024 Linux.org.ru
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
Expand All @@ -15,17 +15,14 @@

package ru.org.linux.user;

import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.validation.ValidationUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.ModelAndView;
import ru.org.linux.auth.AccessViolationException;
import ru.org.linux.auth.AuthUtil;
import ru.org.linux.site.DefaultProfile;
Expand All @@ -34,12 +31,15 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Controller
@SessionAttributes("allboxes")
public class AddRemoveBoxesController {
@Autowired
private ProfileDao profileDao;
private final ProfileDao profileDao;

public AddRemoveBoxesController(ProfileDao profileDao) {
this.profileDao = profileDao;
}

@RequestMapping(value = {"/remove-box.jsp", "/add-box.jsp"}, method = RequestMethod.GET)
public ModelMap showRemove(@RequestParam(required = false) Integer pos)
Expand All @@ -58,8 +58,7 @@ public ModelMap showRemove(@RequestParam(required = false) Integer pos)
}

@RequestMapping(value = "/remove-box.jsp", method = RequestMethod.POST)
public String doRemove(@ModelAttribute("form") EditBoxesRequest form, BindingResult result,
SessionStatus status) {
public String doRemove(@ModelAttribute("form") EditBoxesRequest form, BindingResult result) {
Template tmpl = Template.getTemplate();

if (!tmpl.isSessionAuthorized()) {
Expand All @@ -86,7 +85,6 @@ public String doRemove(@ModelAttribute("form") EditBoxesRequest form, BindingRes
}
}

status.setComplete();
return "redirect:/edit-boxes.jsp";
}

Expand All @@ -96,9 +94,7 @@ public Map<String, String> getAllBoxes() {
}

@RequestMapping(value = "/add-box.jsp", method = RequestMethod.POST)
public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult result,
SessionStatus status) {

public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult result) {
ValidationUtils.rejectIfEmptyOrWhitespace(result, "boxName", "boxName.empty", "Не выбран бокслет");
if (StringUtils.isNotEmpty(form.getBoxName()) && !DefaultProfile.isBox(form.getBoxName())) {
result.addError(new FieldError("boxName", "boxName.invalid", "Неверный бокслет"));
Expand All @@ -116,9 +112,8 @@ public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult
form.setPosition(0);
}

List<String> boxlets = Lists.newArrayList(
Iterables.filter(t.getProf().getBoxlets(), DefaultProfile.boxPredicate()::test)
);
List<String> boxlets = t.getProf().getBoxlets().stream().filter(DefaultProfile::isBox)
.collect(Collectors.toCollection(ArrayList::new));

if (boxlets.size() > form.position) {
boxlets.add(form.position, form.boxName);
Expand All @@ -128,12 +123,16 @@ public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult

t.getProf().setBoxlets(boxlets);

profileDao.writeProfile(AuthUtil.getCurrentUser(), t.getProf());
profileDao.writeProfile(AuthUtil.getCurrentUser(), t.getProf());

status.setComplete();
return "redirect:/edit-boxes.jsp";
}

@RequestMapping("/edit-boxes.jsp")
public ModelAndView view() {
return new ModelAndView("edit-boxes");
}

public static class EditBoxesRequest {
private Integer position;
private String boxName;
Expand Down
28 changes: 0 additions & 28 deletions src/main/java/ru/org/linux/user/EditBoxesController.java

This file was deleted.

0 comments on commit e652464

Please sign in to comment.