61 lines
2.4 KiB
Java
61 lines
2.4 KiB
Java
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()+'%');
|
|
}
|
|
}
|
|
}
|