/**
   * Request method to show all purchases
   *
   * @param page number of purchases page
   * @param unverified request unverified
   * @param uncompleted request uncompleted
   * @return view
   */
  @RequestMapping(value = "/purchases", method = RequestMethod.GET)
  public ModelAndView purchasesGet(
      @RequestParam(defaultValue = "1") int page,
      @RequestParam(defaultValue = "false") boolean unverified,
      @RequestParam(defaultValue = "false") boolean uncompleted) {
    ModelAndView view = new AdminModelAndView("purchases");
    if (unverified) {
      view.addObject("purchases", purchaseService.getUnverified());
      return view;
    }

    if (uncompleted) {
      view.addObject("purchases", purchaseService.getUncompleted());
      return view;
    }

    int pageCount = purchaseService.getPurchasesCount();
    if (page < 1 || page > pageCount) {
      page = 1;
    }
    List<Purchase> listPurchases = purchaseService.getPurchasesInRange(page);
    view.addObject("purchases", listPurchases);
    view.addObject("pageCount", pageCount);
    view.addObject("page", page);

    return view;
  }