Files
smartproc-be/src/main/java/com/iconplus/smartproc/service/metodepengadaan/GetListMetodePengadaanService.java
dirgantarasiahaan fe72608465 add master data api
2023-05-26 10:39:31 +07:00

62 lines
2.9 KiB
Java

package com.iconplus.smartproc.service.metodepengadaan;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.MetodePengadaanView;
import com.iconplus.smartproc.model.request.MetodePengadaanRequest;
import com.iconplus.smartproc.model.response.GetListMetodePengadaanResponse;
import com.iconplus.smartproc.model.response.MetodePengadaanResponse;
import com.iconplus.smartproc.repository.MetodePengadaanRepository;
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 GetListMetodePengadaanService implements BaseService<MetodePengadaanRequest, GetListMetodePengadaanResponse> {
private MetodePengadaanRepository metodePengadaanRepository;
public GetListMetodePengadaanService(MetodePengadaanRepository metodePengadaanRepository) {
this.metodePengadaanRepository = metodePengadaanRepository;
}
@Override
public GetListMetodePengadaanResponse execute(MetodePengadaanRequest input) {
validateRequest(input);
List<MetodePengadaanResponse> metodePengadaanResponseList = new ArrayList<>();
Page<MetodePengadaanView> metodePengadaanViews = metodePengadaanRepository.getAllMetodePengadaan(input.getSearch(), input.getPageable());
for (MetodePengadaanView metodePengadaanView : metodePengadaanViews) {
MetodePengadaanResponse metodePengadaanResponse = MetodePengadaanResponse.builder()
.id(metodePengadaanView.getId())
.metodePengadaan(metodePengadaanView.getMetodePengadaan())
.keterangan(metodePengadaanView.getKeterangan())
.isActive(metodePengadaanView.getIsActive())
.isDelete(metodePengadaanView.getIsDelete())
.build();
metodePengadaanResponseList.add(metodePengadaanResponse);
}
return GetListMetodePengadaanResponse.builder()
.data(metodePengadaanResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(metodePengadaanViews.getTotalPages())
.totalRecords(metodePengadaanViews.getTotalElements())
.isFirstPage(metodePengadaanViews.isFirst())
.isLastPage(metodePengadaanViews.isLast())
.build())
.build();
}
private void validateRequest(MetodePengadaanRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}