Skip to content

Commit 76735f3

Browse files
committed
Category and Product response refactor is done successfully.
1 parent 07058de commit 76735f3

File tree

9 files changed

+101
-35
lines changed

9 files changed

+101
-35
lines changed

src/main/java/com/manir/springbootecommercerestapi/controller/CategoryController.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
package com.manir.springbootecommercerestapi.controller;
22

33
import com.manir.springbootecommercerestapi.dto.CategoryDto;
4-
import com.manir.springbootecommercerestapi.response.CategoryResponse;
4+
import com.manir.springbootecommercerestapi.response.CommonResponse;
55
import com.manir.springbootecommercerestapi.service.CategoryService;
66
import com.manir.springbootecommercerestapi.utils.Constant;
77
import org.springframework.beans.factory.annotation.Autowired;
88
import org.springframework.http.HttpStatus;
99
import org.springframework.http.ResponseEntity;
1010
import org.springframework.web.bind.annotation.*;
1111

12-
import java.util.List;
13-
1412

1513
@RestController
1614
@RequestMapping(value = "api/v1/categories")
@@ -28,11 +26,11 @@ public ResponseEntity<CategoryDto> createCategory(@RequestBody CategoryDto categ
2826

2927
//get all categories api
3028
@GetMapping("/getAllCategory")
31-
public CategoryResponse getAllCategory(@RequestParam(value = "pageNo", defaultValue = Constant.DEFAULT_PAGE_NUMBER, required = false) int pageNo,
32-
@RequestParam(value = "pageSize", defaultValue = Constant.DEFAULT_PAGE_SIZE, required = false) int pageSize,
33-
@RequestParam(value = "sortBy", defaultValue = Constant.DEFAULT_SORT_BY, required = false) String sortBy,
34-
@RequestParam(value = "sortDir", defaultValue = Constant.DEFAULT_SORT_DIRECTION, required = false) String sortDir){
35-
CategoryResponse categoryResponse = categoryService.getAllCategory(pageNo, pageSize, sortBy, sortDir);
29+
public CommonResponse getAllCategory(@RequestParam(value = "pageNo", defaultValue = Constant.DEFAULT_PAGE_NUMBER, required = false) int pageNo,
30+
@RequestParam(value = "pageSize", defaultValue = Constant.DEFAULT_PAGE_SIZE, required = false) int pageSize,
31+
@RequestParam(value = "sortBy", defaultValue = Constant.DEFAULT_SORT_BY, required = false) String sortBy,
32+
@RequestParam(value = "sortDir", defaultValue = Constant.DEFAULT_SORT_DIRECTION, required = false) String sortDir){
33+
CommonResponse categoryResponse = categoryService.getAllCategory(pageNo, pageSize, sortBy, sortDir);
3634
return categoryResponse;
3735
}
3836

src/main/java/com/manir/springbootecommercerestapi/controller/ProductController.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.manir.springbootecommercerestapi.controller;
22

33
import com.manir.springbootecommercerestapi.dto.ProductDto;
4+
import com.manir.springbootecommercerestapi.response.CommonResponse;
45
import com.manir.springbootecommercerestapi.response.ProductResponse;
56
import com.manir.springbootecommercerestapi.service.ProductService;
67
import com.manir.springbootecommercerestapi.utils.Constant;
@@ -40,11 +41,11 @@ public ResponseEntity<ProductDto> saveProductByCategoryId(@PathVariable Long cat
4041

4142
//get all products api
4243
@GetMapping("/getAllProduct")
43-
public ProductResponse getAllProduct(@RequestParam(value = "pageNo", defaultValue = Constant.DEFAULT_PAGE_NUMBER, required = false) int pageNo,
44+
public CommonResponse getAllProduct(@RequestParam(value = "pageNo", defaultValue = Constant.DEFAULT_PAGE_NUMBER, required = false) int pageNo,
4445
@RequestParam(value = "pageSize", defaultValue = Constant.DEFAULT_PAGE_SIZE, required = false) int pageSize,
4546
@RequestParam(value = "sortBy", defaultValue = Constant.DEFAULT_SORT_BY, required = false) String sortBy,
4647
@RequestParam(value = "sortDir", defaultValue = Constant.DEFAULT_SORT_DIRECTION, required = false) String sortDir){
47-
ProductResponse responseProductDtoList = productService.getAllProduct(pageNo, pageSize, sortBy, sortDir);
48+
CommonResponse responseProductDtoList = productService.getAllProduct(pageNo, pageSize, sortBy, sortDir);
4849
return responseProductDtoList;
4950
}
5051

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.manir.springbootecommercerestapi.response;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import java.util.List;
8+
9+
@Data
10+
@AllArgsConstructor
11+
@NoArgsConstructor
12+
public class CommonResponse <T> {
13+
private List<T> content;
14+
private int pageNo;
15+
private int pageSize;
16+
private long totalElements;
17+
private int totalPages;
18+
private boolean last;
19+
}

src/main/java/com/manir/springbootecommercerestapi/service/CategoryService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
import com.manir.springbootecommercerestapi.dto.CategoryDto;
44
import com.manir.springbootecommercerestapi.response.CategoryResponse;
5+
import com.manir.springbootecommercerestapi.response.CommonResponse;
56

67
import java.util.List;
78

89
public interface CategoryService {
910

1011
CategoryDto createCategory(CategoryDto categoryDto);
11-
CategoryResponse getAllCategory(int pageNo, int pageSize, String sortBy, String sortDir);
12+
CommonResponse getAllCategory(int pageNo, int pageSize, String sortBy, String sortDir);
1213
CategoryDto getCategoryById(Long categoryId);
1314
CategoryDto updateCategory(CategoryDto categoryDto, Long categoryId);
1415
void deleteCategory(Long categoryId);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.manir.springbootecommercerestapi.service;
2+
3+
import com.manir.springbootecommercerestapi.response.CommonResponse;
4+
import org.springframework.data.domain.Page;
5+
6+
import java.util.List;
7+
8+
public interface CommonService<T> {
9+
10+
//CommonResponse getAllCategoryOrProduct(int pageNo, int pageSize, String sortBy, String sortDir);
11+
CommonResponse getResponseContent(Page<T> page, List<T> dtoList);
12+
}

src/main/java/com/manir/springbootecommercerestapi/service/Impl/CategoryServiceImpl.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
import com.manir.springbootecommercerestapi.exception.ResourceNotFoundException;
55
import com.manir.springbootecommercerestapi.repository.CategoryRepository;
66
import com.manir.springbootecommercerestapi.model.Category;
7-
import com.manir.springbootecommercerestapi.response.CategoryResponse;
7+
import com.manir.springbootecommercerestapi.response.CommonResponse;
88
import com.manir.springbootecommercerestapi.service.CategoryService;
9-
import org.hibernate.Session;
9+
import com.manir.springbootecommercerestapi.service.CommonService;
1010
import org.modelmapper.ModelMapper;
11+
import org.slf4j.Logger;
12+
import org.slf4j.LoggerFactory;
1113
import org.springframework.data.domain.Page;
1214
import org.springframework.data.domain.PageRequest;
1315
import org.springframework.data.domain.Pageable;
@@ -16,17 +18,21 @@
1618

1719
import javax.annotation.Resource;
1820
import java.util.List;
19-
import java.util.Set;
2021
import java.util.stream.Collectors;
2122

2223
@Service
2324
public class CategoryServiceImpl implements CategoryService {
2425

26+
private static Logger logger = LoggerFactory.getLogger(CategoryServiceImpl.class);
27+
2528
@Resource(name = "categoryRepository")
2629
private CategoryRepository categoryRepository;
2730
@Resource(name = "modelMapper")
2831
private ModelMapper modelMapper;
2932

33+
@Resource
34+
private CommonService commonService;
35+
3036
@Override
3137
public CategoryDto createCategory(CategoryDto categoryDto) {
3238
//map dto to entity
@@ -40,7 +46,7 @@ public CategoryDto createCategory(CategoryDto categoryDto) {
4046
}
4147

4248
@Override
43-
public CategoryResponse getAllCategory(int pageNo, int pageSize, String sortBy, String sortDir) {
49+
public CommonResponse getAllCategory(int pageNo, int pageSize, String sortBy, String sortDir) {
4450
Sort sort = sortDir.equalsIgnoreCase(Sort.Direction.ASC.name()) ? Sort.by(sortBy).ascending() : Sort.by(sortBy).descending();
4551
Pageable pageable = PageRequest.of(pageNo, pageSize, sort);
4652
Page<Category> categories = categoryRepository.findAll(pageable);
@@ -51,14 +57,7 @@ public CategoryResponse getAllCategory(int pageNo, int pageSize, String sortBy,
5157
.map(category -> mapToDto(category))
5258
.collect(Collectors.toList());
5359

54-
CategoryResponse categoryResponse = new CategoryResponse();
55-
categoryResponse.setContent(categoryDtoList);
56-
categoryResponse.setPageNo(categories.getNumber());
57-
categoryResponse.setPageSize(categories.getSize());
58-
categoryResponse.setTotalPages(categories.getTotalPages());
59-
categoryResponse.setTotalElements(categories.getTotalElements());
60-
categoryResponse.setLast(categories.isLast());
61-
60+
CommonResponse categoryResponse = commonService.getResponseContent(categories, categoryDtoList);
6261
return categoryResponse;
6362
}
6463

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.manir.springbootecommercerestapi.service.Impl;
2+
3+
import com.manir.springbootecommercerestapi.response.CommonResponse;
4+
import com.manir.springbootecommercerestapi.service.CommonService;
5+
import lombok.extern.slf4j.Slf4j;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
import org.springframework.data.domain.Page;
9+
import org.springframework.stereotype.Service;
10+
11+
import java.util.List;
12+
13+
@Service
14+
@Slf4j
15+
public class CommonServiceImpl implements CommonService{
16+
17+
private static Logger logger = LoggerFactory.getLogger(CategoryServiceImpl.class);
18+
19+
@Override
20+
public CommonResponse getResponseContent(Page page, List dtoList) {
21+
22+
CommonResponse commonResponse = new CommonResponse();
23+
commonResponse.setContent(dtoList);
24+
commonResponse.setPageNo(page.getNumber());
25+
commonResponse.setPageSize(page.getSize());
26+
commonResponse.setTotalPages(page.getTotalPages());
27+
commonResponse.setTotalElements(page.getTotalElements());
28+
commonResponse.setLast(page.isLast());
29+
30+
return commonResponse;
31+
}
32+
}

src/main/java/com/manir/springbootecommercerestapi/service/Impl/ProductServiceImpl.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@
66
import com.manir.springbootecommercerestapi.repository.ProductRepository;
77
import com.manir.springbootecommercerestapi.model.Category;
88
import com.manir.springbootecommercerestapi.model.Product;
9-
import com.manir.springbootecommercerestapi.response.ProductResponse;
9+
import com.manir.springbootecommercerestapi.response.CommonResponse;
10+
import com.manir.springbootecommercerestapi.service.CommonService;
1011
import com.manir.springbootecommercerestapi.service.ProductService;
12+
import lombok.extern.slf4j.Slf4j;
1113
import org.modelmapper.ModelMapper;
14+
import org.slf4j.Logger;
15+
import org.slf4j.LoggerFactory;
1216
import org.springframework.data.domain.Page;
1317
import org.springframework.data.domain.PageRequest;
1418
import org.springframework.data.domain.Pageable;
@@ -24,15 +28,21 @@
2428
import java.util.stream.Collectors;
2529

2630
@Service
31+
@Slf4j
2732
public class ProductServiceImpl implements ProductService {
2833

34+
private static Logger logger = LoggerFactory.getLogger(ProductServiceImpl.class);
35+
2936
@Resource(name = "modelMapper")
3037
private ModelMapper modelMapper;
3138
@Resource(name = "productRepository")
3239
private ProductRepository productRepository;
3340
@Resource(name = "categoryRepository")
3441
private CategoryRepository categoryRepository;
3542

43+
@Resource
44+
private CommonService commonService;
45+
3646
@Override
3747
public ProductDto createProduct(ProductDto productDto, MultipartFile file) {
3848
//map to entity
@@ -45,7 +55,7 @@ public ProductDto createProduct(ProductDto productDto, MultipartFile file) {
4555
}
4656

4757
@Override
48-
public ProductResponse getAllProduct(int pageNo, int pageSize, String sortBy, String sortDir) {
58+
public CommonResponse getAllProduct(int pageNo, int pageSize, String sortBy, String sortDir) {
4959

5060
Sort sort = sortDir.equalsIgnoreCase(Sort.Direction.ASC.name()) ? Sort.by(sortBy).ascending() : Sort.by(sortBy).descending();
5161

@@ -58,14 +68,7 @@ public ProductResponse getAllProduct(int pageNo, int pageSize, String sortBy, St
5868
.map(product -> mapToDto(product))
5969
.collect(Collectors.toList());
6070

61-
ProductResponse productResponse = new ProductResponse();
62-
productResponse.setContent(productDtoList);
63-
productResponse.setPageNo(products.getNumber());
64-
productResponse.setPageSize(products.getSize());
65-
productResponse.setTotalPages(products.getTotalPages());
66-
productResponse.setTotalElements(products.getTotalElements());
67-
productResponse.setLast(products.isLast());
68-
71+
CommonResponse productResponse = commonService.getResponseContent(products, productDtoList);
6972
return productResponse;
7073
}
7174

@@ -133,7 +136,7 @@ private String uploadProductImage(MultipartFile file){
133136
ProductDto productDto = new ProductDto();
134137
String fileName = StringUtils.cleanPath(file.getOriginalFilename());
135138
if(fileName.contains("..")){
136-
System.out.println("Not a valid file");
139+
logger.error("It is a valid file");
137140
}
138141
try {
139142
productDto.setImage(Base64.getEncoder().encodeToString(file.getBytes()));

src/main/java/com/manir/springbootecommercerestapi/service/ProductService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package com.manir.springbootecommercerestapi.service;
22

33
import com.manir.springbootecommercerestapi.dto.ProductDto;
4+
import com.manir.springbootecommercerestapi.response.CommonResponse;
45
import com.manir.springbootecommercerestapi.response.ProductResponse;
56
import org.springframework.web.multipart.MultipartFile;
67

78
import java.util.List;
89

910
public interface ProductService {
1011
ProductDto createProduct(ProductDto productDto, MultipartFile file);
11-
ProductResponse getAllProduct(int pageNo, int pageSize, String sortBy, String sortDir);
12+
CommonResponse getAllProduct(int pageNo, int pageSize, String sortBy, String sortDir);
1213
ProductDto getProductById(Long productId);
1314
ProductDto updateProduct(Long categoryId, ProductDto productDto, Long productId);
1415
void deleteProduct(Long productId);

0 commit comments

Comments
 (0)