Coverage Summary for Class: CategoryService (com.app.SuperMarketSystem.service)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| CategoryService | 100% (1/1) | 100% (7/7) | 55.1% (49/89) |
1 package com.app.SuperMarketSystem.service; 2 3 import com.app.SuperMarketSystem.dto.ApiResponse; 4 import com.app.SuperMarketSystem.model.Category; 5 import com.app.SuperMarketSystem.model.Product; 6 import com.app.SuperMarketSystem.repository.CategoryRepository; 7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.http.HttpStatus; 9 import org.springframework.stereotype.Service; 10 11 import java.util.List; 12 13 @Service 14 public class CategoryService { 15 private final CategoryRepository categoryRepository; 16 17 @Autowired 18 public CategoryService(CategoryRepository categoryRepository) { 19 this.categoryRepository = categoryRepository; 20 } 21 22 public ApiResponse findAllCategories() { 23 ApiResponse apiResponse = new ApiResponse(); 24 try { 25 List<Category> categoriesList = categoryRepository.findAll(); 26 if (categoriesList.isEmpty()) { 27 apiResponse.setMessage("No categories found within the database"); 28 apiResponse.setStatus(HttpStatus.NOT_FOUND.value()); 29 apiResponse.setData(null); 30 } else { 31 apiResponse.setMessage("Successfully fetched categories from the database"); 32 apiResponse.setData(categoriesList); 33 apiResponse.setStatus(HttpStatus.OK.value()); 34 } 35 return apiResponse; 36 } catch (Exception e) { 37 apiResponse.setMessage(e.getMessage()); 38 apiResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); 39 return apiResponse; 40 } 41 } 42 43 public ApiResponse addCategory(Category category) { 44 ApiResponse apiResponse = new ApiResponse(); 45 try { 46 categoryRepository.save(category); 47 apiResponse.setMessage("Successfully added category in the database"); 48 apiResponse.setData(category); 49 apiResponse.setStatus(HttpStatus.OK.value()); 50 return apiResponse; 51 } catch (Exception e) { 52 apiResponse.setMessage(e.getMessage()); 53 apiResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); 54 return apiResponse; 55 } 56 } 57 58 public ApiResponse deleteCategory(String categoryId) { 59 ApiResponse apiResponse = new ApiResponse(); 60 try { 61 Category category = categoryRepository.getById(categoryId); 62 if (null != category) { 63 category.setProducts(null); 64 categoryRepository.delete(category); 65 apiResponse.setStatus(HttpStatus.OK.value()); 66 apiResponse.setMessage("Successfully deleted category from the database"); 67 } else { 68 apiResponse.setStatus(HttpStatus.NOT_FOUND.value()); 69 apiResponse.setMessage("No such category found against this ID"); 70 } 71 apiResponse.setData(null); 72 return apiResponse; 73 } catch (Exception e) { 74 apiResponse.setMessage(e.getMessage()); 75 apiResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); 76 return apiResponse; 77 } 78 } 79 80 public ApiResponse updateCategory(Category category) { 81 ApiResponse apiResponse = new ApiResponse(); 82 try { 83 Category existingCategory = categoryRepository.getById(category.getId()); 84 if (null != existingCategory) { 85 categoryRepository.save(category); 86 apiResponse.setMessage("Successfully updated category within the database"); 87 apiResponse.setData(category); 88 apiResponse.setStatus(HttpStatus.OK.value()); 89 } else { 90 apiResponse.setStatus(HttpStatus.NOT_FOUND.value()); 91 apiResponse.setMessage("No such category found against this ID"); 92 apiResponse.setData(null); 93 } 94 return apiResponse; 95 96 } catch (Exception e) { 97 apiResponse.setMessage(e.getMessage()); 98 apiResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); 99 return apiResponse; 100 } 101 } 102 103 public ApiResponse getCategoryById(String categoryId) { 104 ApiResponse apiResponse = new ApiResponse(); 105 try { 106 Category category = categoryRepository.getById(categoryId); 107 if (null != category) { 108 apiResponse.setStatus(HttpStatus.OK.value()); 109 apiResponse.setMessage("Successful"); 110 apiResponse.setData(category); 111 } else { 112 apiResponse.setData(null); 113 apiResponse.setStatus(HttpStatus.NOT_FOUND.value()); 114 apiResponse.setMessage("No such category found within the database"); 115 } 116 return apiResponse; 117 } catch (Exception e) { 118 apiResponse.setMessage(e.getMessage()); 119 apiResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); 120 return apiResponse; 121 } 122 } 123 124 public ApiResponse addProductsInCategory(String categoryId, List<Product> productList) { 125 ApiResponse apiResponse = new ApiResponse(); 126 try { 127 Category category = categoryRepository.getById(categoryId); 128 if (null != category) { 129 if (productList.isEmpty()) { 130 apiResponse.setMessage("The product list is empty"); 131 apiResponse.setData(productList); 132 } else { 133 category.getProducts().addAll(productList); 134 categoryRepository.save(category); 135 apiResponse.setMessage("Successfully added products within the category"); 136 apiResponse.setData(category); 137 } 138 apiResponse.setStatus(HttpStatus.OK.value()); 139 } else { 140 apiResponse.setMessage("No such category found within the database"); 141 apiResponse.setData(null); 142 apiResponse.setStatus(HttpStatus.NOT_FOUND.value()); 143 } 144 return apiResponse; 145 } catch (Exception e) { 146 apiResponse.setMessage(e.getMessage()); 147 apiResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); 148 return apiResponse; 149 } 150 } 151 }