enhance api sumber dana
This commit is contained in:
@ -1,78 +1,73 @@
|
||||
package com.iconplus.smartproc.controller;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.iconplus.smartproc.exception.ResourceNotFoundException;
|
||||
import com.iconplus.smartproc.model.entity.SumberDana;
|
||||
import com.iconplus.smartproc.repository.SumberDanaRepository;
|
||||
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
||||
import com.iconplus.smartproc.model.request.SumberDanaRequest;
|
||||
import com.iconplus.smartproc.model.response.GetListSumberDanaResponse;
|
||||
import com.iconplus.smartproc.model.response.SumberDanaResponse;
|
||||
import com.iconplus.smartproc.service.sumberdana.*;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
|
||||
@RestController
|
||||
@RequestMapping("/api/sumberdana")
|
||||
public class SumberDanaController {
|
||||
@Autowired
|
||||
private SumberDanaRepository sumberdanaRepository;
|
||||
|
||||
//get all data
|
||||
@GetMapping
|
||||
public List<SumberDana> getAllSumberdanas(){
|
||||
return sumberdanaRepository.findAll();
|
||||
}
|
||||
private GetListSumberDanaService getListSumberDanaService;
|
||||
private PostCreateSumberDanaService postCreateSumberDanaService;
|
||||
private DeleteSumberDanaService deleteSumberDanaService;
|
||||
private GetSumberDanaService getSumberDanaService;
|
||||
private PutSumberDanaService putSumberDanaService;
|
||||
|
||||
// create
|
||||
@PostMapping
|
||||
public SumberDana createSumberdana(@RequestBody SumberDana sumberdana) {
|
||||
return sumberdanaRepository.save(sumberdana);
|
||||
}
|
||||
public SumberDanaController(GetListSumberDanaService getListSumberDanaService,
|
||||
PostCreateSumberDanaService postCreateSumberDanaService,
|
||||
DeleteSumberDanaService deleteSumberDanaService,
|
||||
GetSumberDanaService getSumberDanaService,
|
||||
PutSumberDanaService putSumberDanaService) {
|
||||
this.getListSumberDanaService = getListSumberDanaService;
|
||||
this.postCreateSumberDanaService = postCreateSumberDanaService;
|
||||
this.deleteSumberDanaService = deleteSumberDanaService;
|
||||
this.getSumberDanaService = getSumberDanaService;
|
||||
this.putSumberDanaService = putSumberDanaService;
|
||||
}
|
||||
|
||||
// get sumberdana by id rest api
|
||||
@GetMapping("/{id}")
|
||||
public ResponseEntity<SumberDana> getSumberdanaById(@PathVariable Long id) {
|
||||
SumberDana sumberdana = sumberdanaRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id));
|
||||
return ResponseEntity.ok(sumberdana);
|
||||
}
|
||||
@GetMapping
|
||||
public GetListSumberDanaResponse getListSumberDana(@RequestParam(name = "search", required = false) String search,
|
||||
@RequestParam(name = "page", defaultValue = "1") Integer page,
|
||||
@RequestParam(name = "size", defaultValue = "5") Integer size){
|
||||
|
||||
// update sumberdana rest api
|
||||
@PutMapping("/{id}")
|
||||
public ResponseEntity<SumberDana> updateSumberdana(@PathVariable Long id, @RequestBody SumberDana sumberDanaDetails){
|
||||
SumberDana sumberdana = sumberdanaRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id));
|
||||
Pageable pageable = PageRequest.of((page - 1), size);
|
||||
SumberDanaRequest sumberDanaRequest = SumberDanaRequest.builder()
|
||||
.search(search)
|
||||
.pageable(pageable)
|
||||
.build();
|
||||
|
||||
sumberdana.setSumberDana(sumberDanaDetails.getSumberDana());
|
||||
sumberdana.setKeterangan(sumberDanaDetails.getKeterangan());
|
||||
|
||||
SumberDana updatedSumberDana = sumberdanaRepository.save(sumberdana);
|
||||
return ResponseEntity.ok(updatedSumberDana);
|
||||
}
|
||||
|
||||
// delete sumberdana rest api
|
||||
@DeleteMapping("/{id}")
|
||||
public ResponseEntity<Map<String, Boolean>> deleteSumberdana(@PathVariable Long id){
|
||||
SumberDana sumberdana = sumberdanaRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id));
|
||||
|
||||
sumberdanaRepository.delete(sumberdana);
|
||||
Map<String, Boolean> response = new HashMap<>();
|
||||
response.put("deleted", Boolean.TRUE);
|
||||
return ResponseEntity.ok(response);
|
||||
}
|
||||
return getListSumberDanaService.execute(sumberDanaRequest);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public SumberDanaResponse createSumberDana(@RequestBody SumberDanaRequest request) {
|
||||
return postCreateSumberDanaService.execute(request);
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public SumberDanaResponse getSumberDanaById(@PathVariable Long id) {
|
||||
return getSumberDanaService.execute(SumberDanaRequest.builder()
|
||||
.id(id)
|
||||
.build());
|
||||
}
|
||||
|
||||
@PutMapping("/{id}")
|
||||
public SumberDanaResponse updateBidang(@PathVariable Long id, @RequestBody SumberDanaRequest request){
|
||||
request.setId(id);
|
||||
return putSumberDanaService.execute(request);
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
public EmptyResponse deleteBidang(@PathVariable Long id){
|
||||
return deleteSumberDanaService.execute(SumberDanaRequest.builder()
|
||||
.id(id)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user