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 }