78 lines
3.3 KiB
Java
78 lines
3.3 KiB
Java
package com.iconplus.smartproc.controller;
|
|
|
|
|
|
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
|
import com.iconplus.smartproc.model.request.LokasiRequest;
|
|
import com.iconplus.smartproc.model.response.GetListLokasiResponse;
|
|
import com.iconplus.smartproc.model.response.LokasiResponse;
|
|
import com.iconplus.smartproc.service.lokasi.*;
|
|
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/lokasi")
|
|
public class LokasiController {
|
|
|
|
private final GetListLokasiService getListLokasiService;
|
|
private final GetLokasiByIdService getLokasiByIdService;
|
|
private final PostCreateLokasiService postCreateLokasiService;
|
|
private final PutUpdateLokasiService putUpdateLokasiService;
|
|
private final DeleteLokasiService deleteLokasiService;
|
|
|
|
public LokasiController(GetListLokasiService getListLokasiService,
|
|
GetLokasiByIdService getLokasiByIdService,
|
|
PostCreateLokasiService postCreateLokasiService,
|
|
PutUpdateLokasiService putUpdateLokasiService,
|
|
DeleteLokasiService deleteLokasiService) {
|
|
this.getListLokasiService = getListLokasiService;
|
|
this.getLokasiByIdService = getLokasiByIdService;
|
|
this.postCreateLokasiService = postCreateLokasiService;
|
|
this.putUpdateLokasiService = putUpdateLokasiService;
|
|
this.deleteLokasiService = deleteLokasiService;
|
|
}
|
|
|
|
|
|
@GetMapping
|
|
public GetListLokasiResponse getListLokasi(@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);
|
|
LokasiRequest lokasiRequest = LokasiRequest.builder()
|
|
.search(search)
|
|
.pageable(pageable)
|
|
.build();
|
|
|
|
return getListLokasiService.execute(lokasiRequest);
|
|
}
|
|
|
|
@PostMapping
|
|
public LokasiResponse createLokasi(@RequestBody LokasiRequest lokasiRequest) {
|
|
return postCreateLokasiService.execute(lokasiRequest);
|
|
}
|
|
|
|
@GetMapping("/{id}")
|
|
public LokasiResponse getLokasiById(@PathVariable Long id) {
|
|
return getLokasiByIdService.execute(LokasiRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
|
|
|
|
@PutMapping("/{id}")
|
|
public LokasiResponse updateLokasi(@PathVariable Long id,
|
|
@RequestBody LokasiRequest LokasiRequest){
|
|
LokasiRequest.setId(id);
|
|
return putUpdateLokasiService.execute(LokasiRequest);
|
|
}
|
|
|
|
@DeleteMapping("/{id}")
|
|
public EmptyResponse deleteLokasi(@PathVariable Long id) {
|
|
return deleteLokasiService.execute(LokasiRequest.builder()
|
|
.id(id)
|
|
.build());
|
|
}
|
|
}
|