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