114 lines
5.8 KiB
Java
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);
|
|
}
|
|
|
|
}
|