Coverage Summary for Class: ProductController (com.app.SuperMarketSystem.controller)

Class Class, % Method, % Line, %
ProductController 100% (1/1) 14.3% (1/7) 25% (2/8)


1 package com.app.SuperMarketSystem.controller; 2  3 import com.app.SuperMarketSystem.dto.ApiResponse; 4 import com.app.SuperMarketSystem.dto.ProductDTO; 5 import com.app.SuperMarketSystem.model.Product; 6 import com.app.SuperMarketSystem.service.ProductService; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.web.bind.annotation.*; 9  10 import java.util.List; 11  12 @RestController 13 @RequestMapping("/products") 14 public class ProductController { 15  private final ProductService productService; 16  17  @Autowired 18  public ProductController(ProductService productService) { 19  this.productService = productService; 20  } 21  22  @GetMapping("/list") 23  public ApiResponse list() { 24  return productService.findAllProducts(); 25  } 26  27  @PostMapping("/save") 28  public ApiResponse save(@RequestBody Product product) { 29  return productService.addProduct(product); 30  } 31  32  @PutMapping("/update") 33  public ApiResponse update(@RequestBody Product product) { 34  return productService.updateProduct(product); 35  } 36  37  @DeleteMapping("/delete/{id}") 38  public ApiResponse delete(@PathVariable(name = "id") String productId) { 39  return productService.deleteProduct(productId); 40  } 41  42  @GetMapping("/getBy/{id}") 43  public ApiResponse getById(@PathVariable(name = "id") String productId) { 44  return productService.getProductById(productId); 45  } 46  47  @PostMapping("/purchase") 48  public ApiResponse purchase(@RequestParam(name = "userId") Integer userId, @RequestBody List<ProductDTO> productList) { 49  return productService.purchaseProducts(userId, productList); 50  } 51 }