75 lines
2.9 KiB
Java
75 lines
2.9 KiB
Java
package com.iconplus.smartproc.controller;
|
|
|
|
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
|
import com.iconplus.smartproc.model.request.BidangRequest;
|
|
import com.iconplus.smartproc.model.response.BidangResponse;
|
|
import com.iconplus.smartproc.model.response.GetListBidangResponse;
|
|
import com.iconplus.smartproc.service.bidang.*;
|
|
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/bidang")
|
|
public class BidangController {
|
|
|
|
private GetBidangService getBidangService;
|
|
private DeleteBidangService deleteBidangService;
|
|
private GetListBidangService getListBidangService;
|
|
private PostCreateBidangService postCreateBidangService;
|
|
private PutUpdateBidangService putUpdateBidangService;
|
|
|
|
public BidangController(GetBidangService getBidangService,
|
|
DeleteBidangService deleteBidangService,
|
|
GetListBidangService getListBidangService,
|
|
PostCreateBidangService postCreateBidangService,
|
|
PutUpdateBidangService putUpdateBidangService) {
|
|
this.getBidangService = getBidangService;
|
|
this.deleteBidangService = deleteBidangService;
|
|
this.getListBidangService = getListBidangService;
|
|
this.postCreateBidangService = postCreateBidangService;
|
|
this.putUpdateBidangService = putUpdateBidangService;
|
|
}
|
|
|
|
@GetMapping
|
|
public GetListBidangResponse 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);
|
|
BidangRequest bidangRequest = BidangRequest.builder()
|
|
.search(search)
|
|
.pageable(pageable)
|
|
.build();
|
|
|
|
return getListBidangService.execute(bidangRequest);
|
|
}
|
|
|
|
@PostMapping
|
|
public BidangResponse createBidang(@RequestBody BidangRequest request) {
|
|
return postCreateBidangService.execute(request);
|
|
}
|
|
|
|
@GetMapping("/{id}")
|
|
public BidangResponse getBidangById(@PathVariable Long id) {
|
|
return getBidangService.execute(BidangRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
|
|
@PutMapping("/{id}")
|
|
public BidangResponse updateBidang(@PathVariable Long id, @RequestBody BidangRequest request){
|
|
request.setId(id);
|
|
return putUpdateBidangService.execute(request);
|
|
}
|
|
|
|
@DeleteMapping("/{id}")
|
|
public EmptyResponse deleteBidang(@PathVariable Long id){
|
|
return deleteBidangService.execute(BidangRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
|
|
}
|