74 lines
3.0 KiB
Java
74 lines
3.0 KiB
Java
package com.iconplus.smartproc.controller;
|
|
|
|
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
|
import com.iconplus.smartproc.model.request.JabatanRequest;
|
|
import com.iconplus.smartproc.model.response.GetListJabatanResponse;
|
|
import com.iconplus.smartproc.model.response.JabatanResponse;
|
|
import com.iconplus.smartproc.service.jabatan.*;
|
|
import org.springframework.data.domain.PageRequest;
|
|
import org.springframework.data.domain.Pageable;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
|
|
@RestController
|
|
@RequestMapping("/api/jabatan")
|
|
public class JabatanController {
|
|
|
|
private DeleteJabatanService deleteJabatanService;
|
|
private GetJabatanService getJabatanService;
|
|
private GetListJabatanService getListJabatanService;
|
|
private PostCreateJabatanService postCreateJabatanService;
|
|
private PutUpdateJabatanService putUpdateJabatanService;
|
|
|
|
public JabatanController(DeleteJabatanService deleteJabatanService,
|
|
GetJabatanService getJabatanService,
|
|
GetListJabatanService getListJabatanService,
|
|
PostCreateJabatanService postCreateJabatanService,
|
|
PutUpdateJabatanService putUpdateJabatanService) {
|
|
this.deleteJabatanService = deleteJabatanService;
|
|
this.getJabatanService = getJabatanService;
|
|
this.getListJabatanService = getListJabatanService;
|
|
this.postCreateJabatanService = postCreateJabatanService;
|
|
this.putUpdateJabatanService = putUpdateJabatanService;
|
|
}
|
|
|
|
@GetMapping
|
|
public GetListJabatanResponse getListJabatan(@RequestParam(name = "search", required = false) String search,
|
|
@RequestParam(name = "page", defaultValue = "1") Integer page,
|
|
@RequestParam(name = "size", defaultValue = "5") Integer size){
|
|
|
|
Pageable pageable = PageRequest.of((page - 1), size);
|
|
JabatanRequest bidangRequest = JabatanRequest.builder()
|
|
.search(search)
|
|
.pageable(pageable)
|
|
.build();
|
|
|
|
return getListJabatanService.execute(bidangRequest);
|
|
}
|
|
|
|
@PostMapping
|
|
public JabatanResponse createJabatan(@RequestBody JabatanRequest request) {
|
|
return postCreateJabatanService.execute(request);
|
|
}
|
|
|
|
@GetMapping("/{id}")
|
|
public JabatanResponse getJabatanById(@PathVariable Long id) {
|
|
return getJabatanService.execute(JabatanRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
|
|
@PutMapping("/{id}")
|
|
public JabatanResponse updateBidang(@PathVariable Long id, @RequestBody JabatanRequest request){
|
|
request.setId(id);
|
|
return putUpdateJabatanService.execute(request);
|
|
}
|
|
|
|
@DeleteMapping("/{id}")
|
|
public EmptyResponse deleteJabatan(@PathVariable Long id){
|
|
return deleteJabatanService.execute(JabatanRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
}
|