add api delete dokumen

This commit is contained in:
dirgantarasiahaan 2023-05-31 00:29:40 +07:00
parent 774c3d2138
commit 2c82319b16
6 changed files with 158 additions and 2 deletions

View File

@ -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);
}
}

View File

@ -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<DrpPengadaan, Long> {
@ -51,5 +53,7 @@ public interface DrpPengadaanRepository extends JpaRepository<DrpPengadaan, Long
"WHERE dp.isDelete = false")
Page<DrpPengadaanView> getListDrpPengadaan(Pageable pageable);
Optional<DrpPengadaan> findByIdAndIsDeleteFalse(Long id);
}

View File

@ -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;

View File

@ -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<DrpPengadaanDokumenRequest, EmptyResponse> {
@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();
}
}

View File

@ -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<DrpDokumenRequest, EmptyResponse> {
@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();
}
}

View File

@ -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<DrpPengadaanRequest, EmptyResponse> {
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();
}
}