Files
smartproc-be/src/main/java/com/iconplus/smartproc/controller/DrpPengadaanController.java
2023-06-02 15:12:29 +07:00

114 lines
5.8 KiB
Java

package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.response.*;
import com.iconplus.smartproc.service.drppengadaan.*;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController
@RequestMapping("/api/drp/pengadaan")
public class DrpPengadaanController {
private final PostCreateDrpPengadaanService postCreateDrpPengadaanService;
private final GetListDrpPengadaanService getListDrpPengadaanService;
private final PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService;
private final DeleteDrpPengadaanService deleteDrpPengadaanService;
private final DeleteDokumenPendukungService deleteDokumenPendukungService;
private final EditUploadDrpPengadaanService editUploadDrpPengadaanService;
private final GetDrpPengadaanService getDrpPengadaanService;
private final PutDrpPengadaanService putDrpPengadaanService;
public DrpPengadaanController(PostCreateDrpPengadaanService postCreateDrpPengadaanService,
GetListDrpPengadaanService getListDrpPengadaanService,
PostDrpUploadDokumenPendukungService postDrpUploadDokumenPendukungService,
DeleteDrpPengadaanService deleteDrpPengadaanService,
DeleteDokumenPendukungService deleteDokumenPendukungService,
EditUploadDrpPengadaanService editUploadDrpPengadaanService,
GetDrpPengadaanService getDrpPengadaanService,
PutDrpPengadaanService putDrpPengadaanService) {
this.postCreateDrpPengadaanService = postCreateDrpPengadaanService;
this.getListDrpPengadaanService = getListDrpPengadaanService;
this.postDrpUploadDokumenPendukungService = postDrpUploadDokumenPendukungService;
this.deleteDrpPengadaanService = deleteDrpPengadaanService;
this.deleteDokumenPendukungService = deleteDokumenPendukungService;
this.editUploadDrpPengadaanService = editUploadDrpPengadaanService;
this.getDrpPengadaanService = getDrpPengadaanService;
this.putDrpPengadaanService = putDrpPengadaanService;
}
@GetMapping("/list/{id}")
public GetListDrpPengadaanResponse getDrpPengadaan(@PathVariable(name = "id") Long drpId,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
DrpPengadaanRequest drpPengadaanRequest = DrpPengadaanRequest.builder()
.drpId(drpId)
.pageable(pageable)
.build();
return getListDrpPengadaanService.execute(drpPengadaanRequest);
}
@PostMapping
public DrpPengadaanResponse createDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) {
return postCreateDrpPengadaanService.execute(drpPengadaanRequest);
}
@GetMapping("/{id}")
public DrpPengadaanResponse getDrpPengadaanById(@PathVariable Long id) {
return getDrpPengadaanService.execute(DrpPengadaanRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")
public DrpPengadaanResponse updateDrpPengadaan(@PathVariable Long id,
@RequestBody DrpPengadaanRequest drpPengadaanRequest) throws IOException {
drpPengadaanRequest.setId(id);
return putDrpPengadaanService.execute(drpPengadaanRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) {
return deleteDrpPengadaanService.execute(drpPengadaanRequest);
}
@PostMapping("/upload/dokumen")
public DrpPengadaanDokumenResponse uploadDokumenPendukung(@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) throws IOException {
return postDrpUploadDokumenPendukungService.execute(DrpPengadaanDokumenRequest.builder()
.jenisDokumenId(jenisDokumenId)
.keterangan(keterangan)
.file(file)
.build());
}
@PutMapping("/upload/dokumen")
public DrpPengadaanDokumenResponse editUploadDrpDokumen(@RequestParam(name = "filename") String filename,
@RequestParam(name = "jenisDokumenId") Long jenisDokumenId,
@RequestParam(name = "keterangan") String keterangan,
@RequestParam(name = "file") MultipartFile file) {
return editUploadDrpPengadaanService.execute(DrpPengadaanDokumenRequest.builder()
.filename(filename)
.jenisDokumenId(jenisDokumenId)
.keterangan(keterangan)
.file(file)
.build());
}
@DeleteMapping("/upload/dokumen")
public EmptyResponse deleteDokumenPendukung(@RequestBody DrpPengadaanDokumenRequest drpPengadaanDokumenRequest) {
return deleteDokumenPendukungService.execute(drpPengadaanDokumenRequest);
}
}