2023-05-28 22:01:19 +07:00

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());
}
}