add master data api
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package com.iconplus.smartproc.service.lokasi;
|
||||
|
||||
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.LokasiRequest;
|
||||
import com.iconplus.smartproc.repository.LokasiRepository;
|
||||
import com.iconplus.smartproc.util.Constants;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DeleteLokasiService implements BaseService<LokasiRequest, EmptyResponse> {
|
||||
|
||||
private LokasiRepository lokasiRepository;
|
||||
|
||||
public DeleteLokasiService(LokasiRepository lokasiRepository) {
|
||||
this.lokasiRepository = lokasiRepository;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public EmptyResponse execute(LokasiRequest input) {
|
||||
|
||||
var lokasi = lokasiRepository.findByIdAndIsDeleteFalse(input.getId())
|
||||
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
|
||||
Constants.ERR_CODE_10001,
|
||||
Constants.ERR_TTL_10001,
|
||||
String.format(Constants.ERR_MSG_10001, input.getId())));
|
||||
|
||||
lokasi.setIsDelete(true);
|
||||
lokasiRepository.save(lokasi);
|
||||
log.info("success delete jenis lokasi id {}", lokasi.getIsDelete());
|
||||
return new EmptyResponse();
|
||||
}
|
||||
}
|
@@ -0,0 +1,61 @@
|
||||
package com.iconplus.smartproc.service.lokasi;
|
||||
|
||||
import com.iconplus.smartproc.helper.model.Pagination;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.projection.LokasiView;
|
||||
import com.iconplus.smartproc.model.request.LokasiRequest;
|
||||
import com.iconplus.smartproc.model.response.GetListLokasiResponse;
|
||||
import com.iconplus.smartproc.model.response.LokasiResponse;
|
||||
import com.iconplus.smartproc.repository.LokasiRepository;
|
||||
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 GetListLokasiService implements BaseService<LokasiRequest, GetListLokasiResponse> {
|
||||
|
||||
private LokasiRepository lokasiRepository;
|
||||
|
||||
public GetListLokasiService(LokasiRepository lokasiRepository) {
|
||||
this.lokasiRepository = lokasiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GetListLokasiResponse execute(LokasiRequest input) {
|
||||
validateRequest(input);
|
||||
List<LokasiResponse> lokasiResponseList = new ArrayList<>();
|
||||
Page<LokasiView> lokasiViews = lokasiRepository.getAllLokasi(input.getSearch(), input.getPageable());
|
||||
|
||||
for (LokasiView lokasiView : lokasiViews) {
|
||||
LokasiResponse lokasiResponse = LokasiResponse.builder()
|
||||
.id(lokasiView.getId())
|
||||
.lokasi(lokasiView.getLokasi())
|
||||
.keterangan(lokasiView.getKeterangan())
|
||||
.isActive(lokasiView.getIsActive())
|
||||
.isDelete(lokasiView.getIsDelete())
|
||||
.build();
|
||||
lokasiResponseList.add(lokasiResponse);
|
||||
}
|
||||
|
||||
return GetListLokasiResponse.builder()
|
||||
.data(lokasiResponseList)
|
||||
.pagination(Pagination.builder()
|
||||
.pageSize(input.getPageable().getPageSize())
|
||||
.currentPage(input.getPageable().getPageNumber())
|
||||
.totalPages(lokasiViews.getTotalPages())
|
||||
.totalRecords(lokasiViews.getTotalElements())
|
||||
.isFirstPage(lokasiViews.isFirst())
|
||||
.isLastPage(lokasiViews.isLast())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
private void validateRequest(LokasiRequest input) {
|
||||
if (StringUtils.isNotBlank(input.getSearch())) {
|
||||
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
package com.iconplus.smartproc.service.lokasi;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.request.LokasiRequest;
|
||||
import com.iconplus.smartproc.model.response.LokasiResponse;
|
||||
import com.iconplus.smartproc.repository.LokasiRepository;
|
||||
import com.iconplus.smartproc.util.Constants;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class GetLokasiByIdService implements BaseService<LokasiRequest, LokasiResponse> {
|
||||
|
||||
private final LokasiRepository lokasiRepository;
|
||||
|
||||
public GetLokasiByIdService(LokasiRepository lokasiRepository) {
|
||||
this.lokasiRepository = lokasiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LokasiResponse execute(LokasiRequest input) {
|
||||
LokasiResponse lokasiResponse = new LokasiResponse();
|
||||
var lokasiView = lokasiRepository.findByIdAndIsDeleteFalse(input.getId());
|
||||
if (lokasiView.isEmpty()) {
|
||||
throw new BusinessException(HttpStatus.CONFLICT,
|
||||
Constants.ERR_CODE_10001,
|
||||
Constants.ERR_TTL_10001,
|
||||
String.format(Constants.ERR_MSG_10001, input.getId()));
|
||||
}
|
||||
|
||||
lokasiResponse.setLokasi(lokasiView.get().getLokasi());
|
||||
lokasiResponse.setKeterangan(lokasiView.get().getKeterangan());
|
||||
lokasiResponse.setIsDelete(lokasiView.get().getIsDelete());
|
||||
|
||||
return LokasiResponse.builder()
|
||||
.id(lokasiView.get().getId())
|
||||
.lokasi(lokasiView.get().getLokasi())
|
||||
.keterangan(lokasiView.get().getKeterangan())
|
||||
.isDelete(lokasiView.get().getIsDelete())
|
||||
.build();
|
||||
}
|
||||
}
|
@@ -0,0 +1,49 @@
|
||||
package com.iconplus.smartproc.service.lokasi;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.entity.Lokasi;
|
||||
import com.iconplus.smartproc.model.request.LokasiRequest;
|
||||
import com.iconplus.smartproc.model.response.LokasiResponse;
|
||||
import com.iconplus.smartproc.repository.LokasiRepository;
|
||||
import com.iconplus.smartproc.util.Constants;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PostCreateLokasiService implements BaseService<LokasiRequest, LokasiResponse> {
|
||||
|
||||
private final LokasiRepository lokasiRepository;
|
||||
|
||||
public PostCreateLokasiService(LokasiRepository lokasiRepository) {
|
||||
this.lokasiRepository = lokasiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LokasiResponse execute(LokasiRequest input) {
|
||||
|
||||
var existLokasi = lokasiRepository.findByLokasiAndIsDeleteFalse(input.getLokasi());
|
||||
if (existLokasi.isPresent()) {
|
||||
throw new BusinessException(HttpStatus.CONFLICT,
|
||||
Constants.ERR_CODE_10002,
|
||||
Constants.ERR_TTL_10002,
|
||||
String.format(Constants.ERR_MSG_10002, input.getLokasi()));
|
||||
}
|
||||
|
||||
Lokasi lokasi = Lokasi.builder()
|
||||
.lokasi(input.getLokasi())
|
||||
.keterangan(input.getKeterangan())
|
||||
.isDelete(false)
|
||||
.isActive(input.getIsActive())
|
||||
.build();
|
||||
|
||||
var result = lokasiRepository.save(lokasi);
|
||||
log.info("success insert lokasi id : {}", result.getId());
|
||||
return LokasiResponse.builder()
|
||||
.id(result.getId())
|
||||
.build();
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,45 @@
|
||||
package com.iconplus.smartproc.service.lokasi;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.request.LokasiRequest;
|
||||
import com.iconplus.smartproc.model.response.LokasiResponse;
|
||||
import com.iconplus.smartproc.repository.LokasiRepository;
|
||||
import com.iconplus.smartproc.util.Constants;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PutUpdateLokasiService implements BaseService<LokasiRequest, LokasiResponse> {
|
||||
|
||||
private LokasiRepository lokasiRepository;
|
||||
|
||||
public PutUpdateLokasiService(LokasiRepository lokasiRepository) {
|
||||
this.lokasiRepository = lokasiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LokasiResponse execute(LokasiRequest input) {
|
||||
|
||||
var lokasi = lokasiRepository.findByIdAndIsDeleteFalse(input.getId())
|
||||
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
|
||||
Constants.ERR_CODE_10001,
|
||||
Constants.ERR_TTL_10001,
|
||||
String.format(Constants.ERR_MSG_10001, input.getId())));
|
||||
|
||||
lokasi.setLokasi(input.getLokasi());
|
||||
lokasi.setKeterangan(input.getKeterangan());
|
||||
lokasi.setIsDelete(BooleanUtils.isTrue(input.getIsDelete()));
|
||||
lokasi.setLastUpdate(new Timestamp(System.currentTimeMillis()));
|
||||
lokasiRepository.save(lokasi);
|
||||
log.info("Success edit lokasi id {}", lokasi.getId());
|
||||
return LokasiResponse.builder()
|
||||
.id(lokasi.getId())
|
||||
.build();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user