refactor v2

This commit is contained in:
dirgantarasiahaan
2023-05-24 09:23:51 +07:00
parent ed88afcdde
commit b49a2425c1
52 changed files with 809 additions and 172 deletions

View File

@@ -0,0 +1,33 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class DeleteRoleService implements BaseService<RolesRequest, EmptyResponse> {
private RolesRepository rolesRepository;
public DeleteRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public EmptyResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
role.setIsDelete(true);
rolesRepository.save(role);
return new EmptyResponse();
}
}

View File

@@ -0,0 +1,36 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class GetRoleByIdService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public GetRoleByIdService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
return RolesResponse.builder()
.id(role.getId())
.role(role.getRole())
.keterangan(role.getKeterangan())
.isActive(role.getIsActive())
.isDelete(role.getIsDelete())
.build();
}
}

View File

@@ -0,0 +1,60 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.RolesView;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.GetRolesResponse;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetRolesService implements BaseService<RolesRequest, GetRolesResponse> {
private final RolesRepository rolesRepository;
public GetRolesService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public GetRolesResponse execute(RolesRequest input) {
validateRequest(input);
List<RolesResponse> rolesResponseList = new ArrayList<>();
Page<RolesView> rolesViews = rolesRepository.findAllRolesANdDeletedFalse(input.getSearch(), input.getPageable());
for (RolesView rolesView : rolesViews) {
RolesResponse rolesResponse = RolesResponse.builder()
.id(rolesView.getId())
.role(rolesView.getRole())
.keterangan(rolesView.getKeterangan())
.isActive(rolesView.getIsActive())
.isDelete(rolesView.getIsDelete())
.build();
rolesResponseList.add(rolesResponse);
}
return GetRolesResponse.builder()
.data(rolesResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(rolesViews.getTotalPages())
.totalRecords(rolesViews.getTotalElements())
.isFirstPage(rolesViews.isFirst())
.isLastPage(rolesViews.isLast())
.build())
.build();
}
private void validateRequest(RolesRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@@ -0,0 +1,44 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
public class PostCreateRoleService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public PostCreateRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Optional<Roles> role = rolesRepository.findByRoleAndIsDeleteFalse(input.getRole());
if (role.isPresent()) {
throw new BusinessException(Constants.ERR_CODE_10006,
Constants.ERR_TTL_10006,
String.format(Constants.ERR_MSG_10006, input.getRole()));
}
Roles roles = Roles.builder()
.role(input.getRole())
.keterangan(input.getKeterangan())
.isActive(input.getIsActive())
.isDelete(false)
.build();
var result = rolesRepository.save(roles);
return RolesResponse.builder()
.id(result.getId())
.build();
}
}

View File

@@ -0,0 +1,38 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class PutUpdateRoleService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public PutUpdateRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
role.setRole(input.getRole());
role.setKeterangan(input.getKeterangan());
role.setIsActive(input.getIsActive());
rolesRepository.save(role);
return RolesResponse.builder()
.id(role.getId())
.build();
}
}