Advertisement
codegod313

Server part of credits display

May 13th, 2022
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.84 KB | None | 0 0
  1. package com.cleverdeath.contoller;
  2.  
  3. import com.cleverdeath.entity.Credit;
  4. import com.cleverdeath.entity.Currency;
  5. import com.cleverdeath.entity.PaginationContainer;
  6. import com.cleverdeath.repository.CreditsRepo;
  7. import com.cleverdeath.service.CreditService;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.ui.Model;
  10. import org.springframework.web.bind.annotation.GetMapping;
  11. import org.springframework.web.bind.annotation.PathVariable;
  12. import org.springframework.web.bind.annotation.RequestParam;
  13.  
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpSession;
  16. import java.math.BigDecimal;
  17.  
  18. @Controller
  19. public class CreditController {
  20.     public static final String CREDITS_ATTRIBUTE = "credits";
  21.     public static final String PAGE_ATTRIBUTE = "page";
  22.     public static final String PAGE_QUANTITY_ATTRIBUTE = "pageQuantity";
  23.     public static final int FIRST_PAGE = 1;
  24.     public static final String SEARCH_TYPE_ATTRIBUTE = "searchType";
  25.     public static final String SEARCH_TEXT_ATTRIBUTE = "searchText";
  26.     private final CreditService creditService;
  27.     private final CreditsRepo creditsRepo;
  28.  
  29.     public CreditController(CreditService creditService, CreditsRepo creditsRepo) {
  30.         this.creditService = creditService;
  31.         this.creditsRepo = creditsRepo;
  32.  
  33.     }
  34.  
  35.     @GetMapping("/")
  36.     public String startMainPage() {
  37.         return "redirect:credits";
  38.     }
  39.  
  40.     @GetMapping("/credits")
  41.     public String showCredits(@RequestParam(name = "page", required = false, defaultValue = "1") int page,
  42.                               @RequestParam(name = "searchText", required = false, defaultValue = "none") String searchText,
  43.                               HttpSession session,
  44.                               HttpServletRequest request,
  45.                               Model model) {
  46.         PaginationContainer<Credit> paginationContainer;
  47.         Object searchType = session.getAttribute(SEARCH_TYPE_ATTRIBUTE);
  48.         if (!searchText.equals("none")) {
  49.             request.setAttribute(SEARCH_TEXT_ATTRIBUTE, searchText);
  50.         }
  51.         Object searchTextAttribute = request.getAttribute(SEARCH_TEXT_ATTRIBUTE);
  52.         if (searchType != null && searchTextAttribute != null) {
  53.             paginationContainer = creditService.receivePaginationContainerSearch(searchType.toString(), searchTextAttribute.toString());
  54.         }else {
  55.             paginationContainer = creditService.receivePaginationContainer();
  56.         }
  57.  
  58.         model.addAttribute(PAGE_QUANTITY_ATTRIBUTE, paginationContainer.getPageQuantity());
  59.  
  60.         if (page > paginationContainer.getPageQuantity()) {
  61.             page = paginationContainer.getPageQuantity();
  62.         }
  63.         if (page < 1) {
  64.             page = FIRST_PAGE;
  65.         }
  66.  
  67.         model.addAttribute(PAGE_ATTRIBUTE, page);
  68.         model.addAttribute(CREDITS_ATTRIBUTE, paginationContainer.receivePageElements(page));
  69.         return "credits";
  70.     }
  71.  
  72.     @GetMapping("/credits/changeSearchType")
  73.     public String changeCreditSearchType(HttpSession session,
  74.                                          @RequestParam(name = "searchType") String searchType) {
  75.         session.setAttribute(SEARCH_TYPE_ATTRIBUTE, searchType);
  76.         return "redirect:/credits";
  77.     }
  78.  
  79.     @GetMapping("/credits/{credit}")
  80.     public String receiveCreditPage(@PathVariable Credit credit,
  81.                                     Model model){
  82.         model.addAttribute("percent", credit.getPercent());
  83.         model.addAttribute("amount", credit.getAmount());
  84.         model.addAttribute("currency", credit.getCurrency().getName());
  85.         model.addAttribute("currencyShort", credit.getCurrency().getShortName());
  86.         model.addAttribute("name", credit.getName());
  87.         model.addAttribute("description", credit.getDescription());
  88.         return "creditPage";
  89.     }
  90. }
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement