Untitled
unknown
plain_text
9 months ago
2.7 kB
5
Indexable
package de.evobus.on.oncommerce.search.product.rest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import de.evobus.on.core.rest.OsivRestController; import de.evobus.on.oncommerce.commerce.models.SortDirection; import de.evobus.on.oncommerce.core.constant.ApiConstants; import de.evobus.on.oncommerce.core.data.ProductSearchResultDTO; import de.evobus.on.oncommerce.model.enums.CartType; import de.evobus.on.oncommerce.search.product.service.ProductSearchService; import de.evobus.on.portal.account.persistence.Account; import de.evobus.on.portal.role.persistence.Role.RoleName; import static de.evobus.on.oncommerce.core.constant.ApiConstants.DEFAULT_CART_TYPE; import static java.lang.Boolean.TRUE; @Slf4j @OsivRestController @RequestMapping(ApiConstants.PRODUCT_SEARCH_API_PATH) @AllArgsConstructor(onConstructor = @__(@Autowired)) public class ProductSearchController { private final ProductSearchService productSearchService; @GetMapping public ResponseEntity<ProductSearchResultDTO> getProductSearchResult(@AuthenticationPrincipal final Account account, @RequestParam(defaultValue = "") final String categoryKey, @RequestParam(defaultValue = "") final String vin, @RequestParam(defaultValue = "true") final Boolean hideEmptyCategories, @RequestParam(defaultValue = "") final String sortBy, @RequestParam final String language, @RequestParam(defaultValue = "0") final Long pageNo, @RequestParam(defaultValue = "9") final Long limitPerPage, @RequestParam(value = "cartType", defaultValue = DEFAULT_CART_TYPE) final CartType cartType, @RequestParam(defaultValue = "false") final boolean catalogueContext) { if (account.hasRole(RoleName.ON_COMMERCE_SHOP_R)) { final ProductSearchResultDTO productSearchResultDTO = productSearchService.searchProducts(account, categoryKey, vin, TRUE.equals(hideEmptyCategories), SortDirection.valueOf(sortBy, SortDirection.MATERIAL_NUMBER_ASCENDING), language, pageNo, limitPerPage, cartType, catalogueContext); return ResponseEntity.ok(productSearchResultDTO); } return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); } }
Editor is loading...
Leave a Comment