enhance api sumber dana

This commit is contained in:
dirgantarasiahaan
2023-05-24 23:53:00 +07:00
parent 11430dc068
commit 28f17d5b54
11 changed files with 334 additions and 61 deletions

View File

@ -0,0 +1,26 @@
package com.iconplus.smartproc.service.sumberdana;
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.request.SumberDanaRequest;
import com.iconplus.smartproc.repository.SumberDanaRepository;
import org.springframework.stereotype.Service;
@Service
public class DeleteSumberDanaService implements BaseService<SumberDanaRequest, EmptyResponse> {
private SumberDanaRepository sumberDanaRepository;
public DeleteSumberDanaService(SumberDanaRepository sumberDanaRepository) {
this.sumberDanaRepository = sumberDanaRepository;
}
@Override
public EmptyResponse execute(SumberDanaRequest input) {
var sumberDana = sumberDanaRepository.findByIdAndIsDeleteFalse(input.getId()).orElseThrow(() -> new BusinessException("err", "err", "err"));
sumberDana.setIsDelete(true);
sumberDanaRepository.save(sumberDana);
return new EmptyResponse();
}
}

View File

@ -0,0 +1,49 @@
package com.iconplus.smartproc.service.sumberdana;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.SumberDanaView;
import com.iconplus.smartproc.model.request.SumberDanaRequest;
import com.iconplus.smartproc.model.response.GetListSumberDanaResponse;
import com.iconplus.smartproc.model.response.SumberDanaResponse;
import com.iconplus.smartproc.repository.SumberDanaRepository;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListSumberDanaService implements BaseService<SumberDanaRequest, GetListSumberDanaResponse> {
private SumberDanaRepository sumberDanaRepository;
public GetListSumberDanaService(SumberDanaRepository sumberDanaRepository) {
this.sumberDanaRepository = sumberDanaRepository;
}
@Override
public GetListSumberDanaResponse execute(SumberDanaRequest input) {
List<SumberDanaResponse> sumberDanaResponseList = new ArrayList<>();
var sumberDanaViews= sumberDanaRepository.getListSumberDana(input.getSearch(), input.getPageable());
for (SumberDanaView sumberDanaView : sumberDanaViews) {
SumberDanaResponse sumberDanaResponse = SumberDanaResponse.builder()
.id(sumberDanaView.getId())
.sumberDana(sumberDanaView.getSumberDana())
.keterangan(sumberDanaView.getKeterangan())
.isActive(sumberDanaView.getIsActive())
.build();
sumberDanaResponseList.add(sumberDanaResponse);
}
return GetListSumberDanaResponse.builder()
.data(sumberDanaResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(sumberDanaViews.getTotalPages())
.totalRecords(sumberDanaViews.getTotalElements())
.isFirstPage(sumberDanaViews.isFirst())
.isLastPage(sumberDanaViews.isLast())
.build())
.build();
}
}

View File

@ -0,0 +1,31 @@
package com.iconplus.smartproc.service.sumberdana;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.SumberDanaRequest;
import com.iconplus.smartproc.model.response.SumberDanaResponse;
import com.iconplus.smartproc.repository.SumberDanaRepository;
import org.springframework.stereotype.Service;
@Service
public class GetSumberDanaService implements BaseService<SumberDanaRequest, SumberDanaResponse> {
private SumberDanaRepository sumberDanaRepository;
public GetSumberDanaService(SumberDanaRepository sumberDanaRepository) {
this.sumberDanaRepository = sumberDanaRepository;
}
@Override
public SumberDanaResponse execute(SumberDanaRequest input) {
var sumberDana = sumberDanaRepository.findByIdAndIsDeleteFalse(input.getId()).orElseThrow(() -> new BusinessException("err", "err", "err"));
return SumberDanaResponse.builder()
.id(sumberDana.getId())
.sumberDana(sumberDana.getSumberDana())
.keterangan(sumberDana.getKeterangan())
.isActive(sumberDana.getIsActive())
.isDelete(sumberDana.getIsDelete())
.build();
}
}

View File

@ -0,0 +1,40 @@
package com.iconplus.smartproc.service.sumberdana;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.SumberDana;
import com.iconplus.smartproc.model.request.SumberDanaRequest;
import com.iconplus.smartproc.model.response.SumberDanaResponse;
import com.iconplus.smartproc.repository.SumberDanaRepository;
import org.springframework.stereotype.Service;
@Service
public class PostCreateSumberDanaService implements BaseService<SumberDanaRequest, SumberDanaResponse> {
private SumberDanaRepository sumberDanaRepository;
public PostCreateSumberDanaService(SumberDanaRepository sumberDanaRepository) {
this.sumberDanaRepository = sumberDanaRepository;
}
@Override
public SumberDanaResponse execute(SumberDanaRequest input) {
var sumberDana = sumberDanaRepository.findBySumberDanaAndIsDeleteFalse(input.getSumberDana());
if (sumberDana.isPresent()) {
throw new BusinessException("err", "err", "err");
}
SumberDana sumberDanaEntity = SumberDana.builder()
.sumberDana(input.getSumberDana())
.keterangan(input.getKeterangan())
.isActive(input.getIsActive())
.isDelete(false)
.build();
var result = sumberDanaRepository.save(sumberDanaEntity);
return SumberDanaResponse.builder()
.id(result.getId())
.build();
}
}

View File

@ -0,0 +1,32 @@
package com.iconplus.smartproc.service.sumberdana;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.SumberDanaRequest;
import com.iconplus.smartproc.model.response.SumberDanaResponse;
import com.iconplus.smartproc.repository.SumberDanaRepository;
import org.springframework.stereotype.Service;
@Service
public class PutSumberDanaService implements BaseService<SumberDanaRequest, SumberDanaResponse> {
private SumberDanaRepository sumberDanaRepository;
public PutSumberDanaService(SumberDanaRepository sumberDanaRepository) {
this.sumberDanaRepository = sumberDanaRepository;
}
@Override
public SumberDanaResponse execute(SumberDanaRequest input) {
var sumberDana = sumberDanaRepository.findByIdAndIsDeleteFalse(input.getId()).orElseThrow(() -> new BusinessException("err", "err", "err"));
sumberDana.setSumberDana(input.getSumberDana());
sumberDana.setKeterangan(input.getKeterangan());
sumberDana.setIsActive(input.getIsActive());
var result = sumberDanaRepository.save(sumberDana);
return SumberDanaResponse.builder()
.id(result.getId())
.build();
}
}