Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.cleverdeath.contoller;
- import com.cleverdeath.entity.Credit;
- import com.cleverdeath.entity.Currency;
- import com.cleverdeath.entity.PaginationContainer;
- import com.cleverdeath.repository.CreditsRepo;
- import com.cleverdeath.service.CreditService;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestParam;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import java.math.BigDecimal;
- @Controller
- public class CreditController {
- public static final String CREDITS_ATTRIBUTE = "credits";
- public static final String PAGE_ATTRIBUTE = "page";
- public static final String PAGE_QUANTITY_ATTRIBUTE = "pageQuantity";
- public static final int FIRST_PAGE = 1;
- public static final String SEARCH_TYPE_ATTRIBUTE = "searchType";
- public static final String SEARCH_TEXT_ATTRIBUTE = "searchText";
- private final CreditService creditService;
- private final CreditsRepo creditsRepo;
- public CreditController(CreditService creditService, CreditsRepo creditsRepo) {
- this.creditService = creditService;
- this.creditsRepo = creditsRepo;
- }
- @GetMapping("/")
- public String startMainPage() {
- return "redirect:credits";
- }
- @GetMapping("/credits")
- public String showCredits(@RequestParam(name = "page", required = false, defaultValue = "1") int page,
- @RequestParam(name = "searchText", required = false, defaultValue = "none") String searchText,
- HttpSession session,
- HttpServletRequest request,
- Model model) {
- PaginationContainer<Credit> paginationContainer;
- Object searchType = session.getAttribute(SEARCH_TYPE_ATTRIBUTE);
- if (!searchText.equals("none")) {
- request.setAttribute(SEARCH_TEXT_ATTRIBUTE, searchText);
- }
- Object searchTextAttribute = request.getAttribute(SEARCH_TEXT_ATTRIBUTE);
- if (searchType != null && searchTextAttribute != null) {
- paginationContainer = creditService.receivePaginationContainerSearch(searchType.toString(), searchTextAttribute.toString());
- }else {
- paginationContainer = creditService.receivePaginationContainer();
- }
- model.addAttribute(PAGE_QUANTITY_ATTRIBUTE, paginationContainer.getPageQuantity());
- if (page > paginationContainer.getPageQuantity()) {
- page = paginationContainer.getPageQuantity();
- }
- if (page < 1) {
- page = FIRST_PAGE;
- }
- model.addAttribute(PAGE_ATTRIBUTE, page);
- model.addAttribute(CREDITS_ATTRIBUTE, paginationContainer.receivePageElements(page));
- return "credits";
- }
- @GetMapping("/credits/changeSearchType")
- public String changeCreditSearchType(HttpSession session,
- @RequestParam(name = "searchType") String searchType) {
- session.setAttribute(SEARCH_TYPE_ATTRIBUTE, searchType);
- return "redirect:/credits";
- }
- @GetMapping("/credits/{credit}")
- public String receiveCreditPage(@PathVariable Credit credit,
- Model model){
- model.addAttribute("percent", credit.getPercent());
- model.addAttribute("amount", credit.getAmount());
- model.addAttribute("currency", credit.getCurrency().getName());
- model.addAttribute("currencyShort", credit.getCurrency().getShortName());
- model.addAttribute("name", credit.getName());
- model.addAttribute("description", credit.getDescription());
- return "creditPage";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement