add api instansi and user management

This commit is contained in:
dirgantarasiahaan
2023-05-24 12:21:01 +07:00
parent 4c500b18f5
commit 62ccecb214
24 changed files with 683 additions and 71 deletions

View File

@@ -0,0 +1,30 @@
package com.iconplus.smartproc.service.instansi;
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.InstansiRequest;
import com.iconplus.smartproc.repository.InstansiRepository;
import org.springframework.stereotype.Service;
@Service
public class DeleteInstansiService implements BaseService<InstansiRequest, EmptyResponse> {
private InstansiRepository instansiRepository;
public DeleteInstansiService(InstansiRepository instansiRepository) {
this.instansiRepository = instansiRepository;
}
@Override
public EmptyResponse execute(InstansiRequest input) {
var instansi = instansiRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException("err", "err", "err"));
instansi.setIsDelete(true);
instansiRepository.save(instansi);
return new EmptyResponse();
}
}

View File

@@ -0,0 +1,34 @@
package com.iconplus.smartproc.service.instansi;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.InstansiRequest;
import com.iconplus.smartproc.model.response.InstansiResponse;
import com.iconplus.smartproc.repository.InstansiRepository;
import org.springframework.stereotype.Service;
@Service
public class GetInstansiByIdService implements BaseService<InstansiRequest, InstansiResponse> {
private InstansiRepository instansiRepository;
public GetInstansiByIdService(InstansiRepository instansiRepository) {
this.instansiRepository = instansiRepository;
}
@Override
public InstansiResponse execute(InstansiRequest input) {
var instansi= instansiRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException("err", "err", "err"));
return InstansiResponse.builder()
.id(instansi.getId())
.instansi(instansi.getInstansi())
.alamat(instansi.getAlamat())
.keterangan(instansi.getKeterangan())
.isActive(instansi.getIsActive())
.isDelete(instansi.getIsDelete())
.build();
}
}

View File

@@ -0,0 +1,65 @@
package com.iconplus.smartproc.service.instansi;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.InstansiView;
import com.iconplus.smartproc.model.request.InstansiRequest;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.GetListInstansiResponse;
import com.iconplus.smartproc.model.response.InstansiResponse;
import com.iconplus.smartproc.repository.InstansiRepository;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListInstansiService implements BaseService<InstansiRequest, GetListInstansiResponse> {
private InstansiRepository instansiRepository;
public GetListInstansiService(InstansiRepository instansiRepository) {
this.instansiRepository = instansiRepository;
}
@Override
public GetListInstansiResponse execute(InstansiRequest input) {
validateRequest(input);
List<InstansiResponse> instansiResponseList = new ArrayList<>();
var listInstansi = instansiRepository.getListInstansi(input.getSearch(), input.getPageable());
for (InstansiView instansiView : listInstansi) {
InstansiResponse instansiResponse = InstansiResponse.builder()
.id(instansiView.getId())
.instansi(instansiView.getInstansi())
.alamat(instansiView.getAlamat())
.keterangan(instansiView.getKeterangan())
.isActive(instansiView.getIsActive())
.isDelete(instansiView.getIsDelete())
.build();
instansiResponseList.add(instansiResponse);
}
return GetListInstansiResponse.builder()
.data(instansiResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(listInstansi.getTotalPages())
.totalRecords(listInstansi.getTotalElements())
.isFirstPage(listInstansi.isFirst())
.isLastPage(listInstansi.isLast())
.build())
.build();
}
private void validateRequest(InstansiRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@@ -0,0 +1,41 @@
package com.iconplus.smartproc.service.instansi;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Instansi;
import com.iconplus.smartproc.model.request.InstansiRequest;
import com.iconplus.smartproc.model.response.InstansiResponse;
import com.iconplus.smartproc.repository.InstansiRepository;
import org.springframework.stereotype.Service;
@Service
public class PostCreateInstansiService implements BaseService<InstansiRequest, InstansiResponse> {
private InstansiRepository instansiRepository;
public PostCreateInstansiService(InstansiRepository instansiRepository) {
this.instansiRepository = instansiRepository;
}
@Override
public InstansiResponse execute(InstansiRequest input) {
var instansi = instansiRepository.findByInstansiAndIsDeleteFalse(input.getInstansi());
if (instansi.isPresent()) {
throw new BusinessException("err", "err", "err");
}
Instansi instansiEntity = Instansi.builder()
.instansi(input.getInstansi())
.alamat(input.getAlamat())
.keterangan(input.getKeterangan())
.isActive(input.getIsActive())
.isDelete(false)
.build();
var result = instansiRepository.save(instansiEntity);
return InstansiResponse.builder()
.id(result.getId())
.build();
}
}

View File

@@ -0,0 +1,35 @@
package com.iconplus.smartproc.service.instansi;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.InstansiRequest;
import com.iconplus.smartproc.model.response.InstansiResponse;
import com.iconplus.smartproc.repository.InstansiRepository;
import org.springframework.stereotype.Service;
@Service
public class PutUpdateInstansiService implements BaseService<InstansiRequest, InstansiResponse> {
private InstansiRepository instansiRepository;
public PutUpdateInstansiService(InstansiRepository instansiRepository) {
this.instansiRepository = instansiRepository;
}
@Override
public InstansiResponse execute(InstansiRequest input) {
var instansi = instansiRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException("err", "err", "err"));
instansi.setInstansi(input.getInstansi());
instansi.setAlamat(input.getAlamat());
instansi.setKeterangan(input.getKeterangan());
instansi.setIsActive(input.getIsActive());
var result = instansiRepository.save(instansi);
return InstansiResponse.builder()
.id(result.getId())
.build();
}
}