75 lines
3.1 KiB
Java
75 lines
3.1 KiB
Java
package com.iconplus.smartproc.controller;
|
|
|
|
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
|
import com.iconplus.smartproc.model.request.InstansiRequest;
|
|
import com.iconplus.smartproc.model.response.GetListInstansiResponse;
|
|
import com.iconplus.smartproc.model.response.InstansiResponse;
|
|
import com.iconplus.smartproc.service.instansi.*;
|
|
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/instansi")
|
|
public class InstansiController {
|
|
|
|
private final GetListInstansiService getListInstansiService;
|
|
private final PostCreateInstansiService postCreateInstansiService;
|
|
private final PutUpdateInstansiService putUpdateInstansiService;
|
|
private final GetInstansiByIdService getInstansiByIdService;
|
|
private final DeleteInstansiService deleteInstansiService;
|
|
|
|
public InstansiController(GetListInstansiService getListInstansiService,
|
|
PostCreateInstansiService postCreateInstansiService,
|
|
PutUpdateInstansiService putUpdateInstansiService,
|
|
GetInstansiByIdService getInstansiByIdService,
|
|
DeleteInstansiService deleteInstansiService) {
|
|
this.getListInstansiService = getListInstansiService;
|
|
this.postCreateInstansiService = postCreateInstansiService;
|
|
this.putUpdateInstansiService = putUpdateInstansiService;
|
|
this.getInstansiByIdService = getInstansiByIdService;
|
|
this.deleteInstansiService = deleteInstansiService;
|
|
|
|
}
|
|
|
|
@GetMapping
|
|
public GetListInstansiResponse getListInstansi(@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);
|
|
InstansiRequest instansiRequest = InstansiRequest.builder()
|
|
.search(search)
|
|
.pageable(pageable)
|
|
.build();
|
|
|
|
return getListInstansiService.execute(instansiRequest);
|
|
}
|
|
|
|
@PostMapping
|
|
public InstansiResponse createInstansi(@RequestBody InstansiRequest request) {
|
|
return postCreateInstansiService.execute(request);
|
|
}
|
|
|
|
@GetMapping("/{id}")
|
|
public InstansiResponse getInstansiById(@PathVariable Long id) {
|
|
return getInstansiByIdService.execute(InstansiRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
|
|
@PutMapping("/{id}")
|
|
public InstansiResponse updateInstansi(@PathVariable Long id, @RequestBody InstansiRequest request){
|
|
request.setId(id);
|
|
return putUpdateInstansiService.execute(request);
|
|
}
|
|
|
|
@DeleteMapping("/{id}")
|
|
public EmptyResponse deleteInstansi(@PathVariable Long id){
|
|
return deleteInstansiService.execute(InstansiRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
}
|