diff --git a/src/main/java/com/iconplus/smartproc/controller/DrpController.java b/src/main/java/com/iconplus/smartproc/controller/DrpController.java index 3b1c957..82210bd 100644 --- a/src/main/java/com/iconplus/smartproc/controller/DrpController.java +++ b/src/main/java/com/iconplus/smartproc/controller/DrpController.java @@ -1,6 +1,8 @@ package com.iconplus.smartproc.controller; +import com.iconplus.smartproc.helper.model.EmptyResponse; import com.iconplus.smartproc.model.request.DrpDokumenRequest; +import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest; import com.iconplus.smartproc.model.request.DrpPengadaanRequest; import com.iconplus.smartproc.model.request.DrpRequest; import com.iconplus.smartproc.model.response.*; @@ -25,6 +27,9 @@ public class DrpController { private final PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService; private final PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService; private final PostCreateTahunDrpService postCreateTahunDrpService; + private final DeleteDrpPengadaanService deleteDrpPengadaanService; + private final DeleteDokumenUploadService deleteDokumenUploadService; + private final DeleteDokumenPendukungService deleteDokumenPendukungService; public DrpController(GetDrpService getDrpService, GetListDrpService getListDrpService, @@ -33,7 +38,10 @@ public class DrpController { GetListDrpPengadaanService getListDrpPengadaanService, PostDrpUploadDokumenRKAPService postDrpUploadDokumenRKAPService, PostCreateTahunDrpService postCreateTahunDrpService, - PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService) { + PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService, + DeleteDrpPengadaanService deleteDrpPengadaanService, + DeleteDokumenUploadService deleteDokumenUploadService, + DeleteDokumenPendukungService deleteDokumenPendukungService) { this.getDrpService = getDrpService; this.getListDrpService = getListDrpService; this.postCreateDrpService = postCreateDrpService; @@ -42,6 +50,9 @@ public class DrpController { this.postDrpUploadDokumenRKAPService = postDrpUploadDokumenRKAPService; this.postDrpUploadDokumenPendukungService = postDrpUploadDokumenPendukungService; this.postCreateTahunDrpService = postCreateTahunDrpService; + this.deleteDrpPengadaanService = deleteDrpPengadaanService; + this.deleteDokumenUploadService = deleteDokumenUploadService; + this.deleteDokumenPendukungService = deleteDokumenPendukungService; } @GetMapping @@ -115,4 +126,19 @@ public class DrpController { return getListDrpPengadaanService.execute(drpPengadaanRequest); } + @DeleteMapping("/{id}") + public EmptyResponse deleteDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) { + return deleteDrpPengadaanService.execute(drpPengadaanRequest); + } + + @DeleteMapping("/upload/rkap") + public EmptyResponse deleteDokumenRkap(@RequestBody DrpDokumenRequest drpDokumenRequest) { + return deleteDokumenUploadService.execute(drpDokumenRequest); + } + + @DeleteMapping("/upload/pendukung") + public EmptyResponse deleteDokumenPendukung(@RequestBody DrpPengadaanDokumenRequest drpPengadaanDokumenRequest) { + return deleteDokumenPendukungService.execute(drpPengadaanDokumenRequest); + } + } diff --git a/src/main/java/com/iconplus/smartproc/repository/DrpPengadaanRepository.java b/src/main/java/com/iconplus/smartproc/repository/DrpPengadaanRepository.java index 70bb641..7c2f25e 100644 --- a/src/main/java/com/iconplus/smartproc/repository/DrpPengadaanRepository.java +++ b/src/main/java/com/iconplus/smartproc/repository/DrpPengadaanRepository.java @@ -8,6 +8,8 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface DrpPengadaanRepository extends JpaRepository { @@ -51,5 +53,7 @@ public interface DrpPengadaanRepository extends JpaRepository getListDrpPengadaan(Pageable pageable); + Optional findByIdAndIsDeleteFalse(Long id); + } diff --git a/src/main/java/com/iconplus/smartproc/service/approval/GetListUserDirekturKomiteService.java b/src/main/java/com/iconplus/smartproc/service/approval/GetListUserDirekturKomiteService.java index 61890d6..97581d7 100644 --- a/src/main/java/com/iconplus/smartproc/service/approval/GetListUserDirekturKomiteService.java +++ b/src/main/java/com/iconplus/smartproc/service/approval/GetListUserDirekturKomiteService.java @@ -9,7 +9,6 @@ import com.iconplus.smartproc.repository.UsersRepository; import com.iconplus.smartproc.util.Constants; import org.springframework.stereotype.Service; -import java.io.IOException; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenPendukungService.java b/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenPendukungService.java new file mode 100644 index 0000000..108bbd9 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenPendukungService.java @@ -0,0 +1,46 @@ +package com.iconplus.smartproc.service.drp; + +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest; +import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +@Service +@Slf4j +public class DeleteDokumenPendukungService implements BaseService { + + @Value("${config.file-upload.pendukung}") + private String pathFileUploadPendukung; + + private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository; + public DeleteDokumenPendukungService(DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) { + this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository; + } + @Override + public EmptyResponse execute(DrpPengadaanDokumenRequest input) { + + var drpPengadaanDokumenOptional= drpPengadaanDokumenRepository.findByFilenameAndIsDeleteFalse(input.getFilename()); + if (drpPengadaanDokumenOptional.isPresent()) { + drpPengadaanDokumenOptional.get().setIsDelete(true); + drpPengadaanDokumenRepository.save(drpPengadaanDokumenOptional.get()); + } + + Path path = Paths.get(pathFileUploadPendukung + input.getFilename()); + + try { + Files.delete(path); + } catch (IOException e) { + log.info("no file found"); + } + + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenUploadService.java b/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenUploadService.java new file mode 100644 index 0000000..0f62c49 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/drp/DeleteDokumenUploadService.java @@ -0,0 +1,49 @@ +package com.iconplus.smartproc.service.drp; + +import com.iconplus.smartproc.helper.model.EmptyResponse; +import com.iconplus.smartproc.helper.service.BaseService; +import com.iconplus.smartproc.model.request.DrpDokumenRequest; +import com.iconplus.smartproc.repository.DrpDokumenRepository; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +@Service +@Slf4j +public class DeleteDokumenUploadService implements BaseService { + + @Value("${config.file-upload.rkap}") + private String pathFileUploadRkap; + + private final DrpDokumenRepository drpDokumenRepository; + + public DeleteDokumenUploadService(DrpDokumenRepository drpDokumenRepository) { + this.drpDokumenRepository = drpDokumenRepository; + } + + @Override + public EmptyResponse execute(DrpDokumenRequest input) { + + var drpDokumenOptional = drpDokumenRepository.findByFilenameAndIsDeleteFalse(input.getFilename()); + if (drpDokumenOptional.isPresent()) { + drpDokumenOptional.get().setIsDelete(true); + drpDokumenRepository.save(drpDokumenOptional.get()); + } + + Path path = Paths.get(pathFileUploadRkap + input.getFilename()); + + try { + Files.delete(path); + } catch (IOException e) { + log.info("no file found"); + } + + return new EmptyResponse(); + } +} diff --git a/src/main/java/com/iconplus/smartproc/service/drp/DeleteDrpPengadaanService.java b/src/main/java/com/iconplus/smartproc/service/drp/DeleteDrpPengadaanService.java new file mode 100644 index 0000000..fdd3066 --- /dev/null +++ b/src/main/java/com/iconplus/smartproc/service/drp/DeleteDrpPengadaanService.java @@ -0,0 +1,32 @@ +package com.iconplus.smartproc.service.drp; + +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.DrpPengadaanRequest; +import com.iconplus.smartproc.repository.DrpPengadaanRepository; +import com.iconplus.smartproc.util.Constants; +import org.springframework.stereotype.Service; + + +@Service +public class DeleteDrpPengadaanService implements BaseService { + + private DrpPengadaanRepository drpPengadaanRepository; + public DeleteDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository) { + this.drpPengadaanRepository = drpPengadaanRepository; + } + + @Override + public EmptyResponse execute(DrpPengadaanRequest input) { + + var drpPengadaan = drpPengadaanRepository.findByIdAndIsDeleteFalse(input.getId()) + .orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001, + Constants.ERR_TTL_10001, + String.format(Constants.ERR_MSG_10001, "DRP", input.getId()))); + + drpPengadaan.setIsDelete(true); + drpPengadaanRepository.save(drpPengadaan); + return new EmptyResponse(); + } +}