@With(SaveContext.class) public static Result home(int page) { SearchRequest<Product> searchRequest = sphere().products.all(); searchRequest = filterBy(searchRequest); searchRequest = sortBy(searchRequest); searchRequest = paging(searchRequest, page); SearchResult<Product> searchResult = searchRequest.fetch(); return ok(views.html.home.render(searchResult)); }
public static Result listProducts(String categorySlug, int page) { Category category = null; SearchRequest<Product> searchRequest; if (categorySlug.isEmpty()) { searchRequest = sphere().products.all(); } else { category = sphere().categories.getBySlug(categorySlug); if (category == null) { return notFound("Category not found: " + categorySlug); } FilterExpression categoryFilter = new FilterExpressions.CategoriesOrSubcategories(category); searchRequest = sphere().products.filter(categoryFilter); } searchRequest = filterBy(searchRequest); searchRequest = sortBy(searchRequest); searchRequest = paging(searchRequest, page); SearchResult<Product> searchResult = searchRequest.fetch(); return ok(views.html.ajax.listProducts.render(searchResult, category)); }
@With(SaveContext.class) public static Result select(String categoryPath, int page) { String[] categorySlugs = categoryPath.split("/"); String categorySlug = categorySlugs[categorySlugs.length - 1]; Category category = sphere().categories.getBySlug(categorySlug); if (category == null) { return notFound("Category not found: " + categorySlug); } FilterExpression categoryFilter = new FilterExpressions.CategoriesOrSubcategories(category); SearchRequest<Product> searchRequest = sphere().products.filter(categoryFilter); searchRequest = filterBy(searchRequest); searchRequest = sortBy(searchRequest); searchRequest = paging(searchRequest, page); SearchResult<Product> searchResult = searchRequest.fetch(); if (searchResult.getCount() < 1) { flash("info", "No products found"); } return ok(views.html.categories.render(searchResult, category)); }