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 { 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, "Lokasi", 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(); } }