add master data api

This commit is contained in:
dirgantarasiahaan
2023-05-26 10:39:31 +07:00
parent c573eb2fb3
commit fe72608465
67 changed files with 2376 additions and 307 deletions

View File

@@ -1,68 +1,82 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.model.entity.MetodePenyampaian;
import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.MetodePenyampaianRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.MetodePenyampaianRequest;
import com.iconplus.smartproc.model.response.GetListMetodePenyampaianResponse;
import com.iconplus.smartproc.model.response.MetodePenyampaianResponse;
import com.iconplus.smartproc.repository.MetodePenyampaianRepository;
import com.iconplus.smartproc.service.metodepenyampaian.*;
import org.springframework.beans.factory.annotation.Autowired;
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/metodepenyampaian")
public class MetodePenyampaianController {
@Autowired
private MetodePenyampaianRepository metodepenyampaianRepository;
//get all data
@GetMapping
public List<MetodePenyampaian> getAllMetodepenyampaians(){
return metodepenyampaianRepository.findAll();
}
@Autowired
private MetodePenyampaianRepository metodepenyampaianRepository;
// create
@PostMapping
public MetodePenyampaian createMetodepenyampaian(@RequestBody MetodePenyampaian metodepenyampaian) {
return metodepenyampaianRepository.save(metodepenyampaian);
}
private final GetListMetodePenyampaianService getListMetodePenyampaianService;
private final GetMetodePenyampaianByIdService getMetodePenyampaianByIdService;
private final PostCreateMetodePenyampaianService postCreateMetodePenyampaianService;
private final PutUpdateMetodePenyampaianService putUpdateMetodePenyampaianService;
private final DeleteMetodePenyampaianService deleteMetodePenyampaianService;
// get metodepenyampaian by id rest api
@GetMapping("/{id}")
public ResponseEntity<MetodePenyampaian> getMetodepenyampaianById(@PathVariable Long id) {
MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id));
return ResponseEntity.ok(metodepenyampaian);
}
public MetodePenyampaianController(GetListMetodePenyampaianService getListMetodePenyampaianService,
GetMetodePenyampaianByIdService getMetodePenyampaianByIdService,
PostCreateMetodePenyampaianService postCreateMetodePenyampaianService,
PutUpdateMetodePenyampaianService putUpdateMetodePenyampaianService,
DeleteMetodePenyampaianService deleteMetodePenyampaianService) {
this.getListMetodePenyampaianService = getListMetodePenyampaianService;
this.getMetodePenyampaianByIdService = getMetodePenyampaianByIdService;
this.postCreateMetodePenyampaianService = postCreateMetodePenyampaianService;
this.putUpdateMetodePenyampaianService = putUpdateMetodePenyampaianService;
this.deleteMetodePenyampaianService = deleteMetodePenyampaianService;
}
// update metodepenyampaian rest api
@PutMapping("/{id}")
public ResponseEntity<MetodePenyampaian> updateMetodepenyampaian(@PathVariable Long id, @RequestBody MetodePenyampaian metodePenyampaianDetails){
MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id));
metodepenyampaian.setMetodePenyampaian(metodePenyampaianDetails.getMetodePenyampaian());
metodepenyampaian.setKeterangan(metodePenyampaianDetails.getKeterangan());
@GetMapping
public GetListMetodePenyampaianResponse getListMetodePenyampaian(@RequestParam(name = "search", required = false) String search,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
MetodePenyampaian updatedMetodePenyampaian = metodepenyampaianRepository.save(metodepenyampaian);
return ResponseEntity.ok(updatedMetodePenyampaian);
}
Pageable pageable = PageRequest.of((page - 1), size);
MetodePenyampaianRequest metodePenyampaianRequest = MetodePenyampaianRequest.builder()
.search(search)
.pageable(pageable)
.build();
// delete metodepenyampaian rest api
@DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteMetodepenyampaian(@PathVariable Long id){
MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id));
return getListMetodePenyampaianService.execute(metodePenyampaianRequest);
}
metodepenyampaianRepository.delete(metodepenyampaian);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return ResponseEntity.ok(response);
}
@PostMapping
public MetodePenyampaianResponse createMetodePenyampaian(@RequestBody MetodePenyampaianRequest metodePenyampaianRequest) {
return postCreateMetodePenyampaianService.execute(metodePenyampaianRequest);
}
@GetMapping("/{id}")
public MetodePenyampaianResponse getMetodePenyampaianById(@PathVariable Long id) {
return getMetodePenyampaianByIdService.execute(MetodePenyampaianRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")
public MetodePenyampaianResponse updateMetodepenyampaian(@PathVariable Long id,
@RequestBody MetodePenyampaianRequest metodePenyampaianRequest){
metodePenyampaianRequest.setId(id);
return putUpdateMetodePenyampaianService.execute(metodePenyampaianRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteMetodePenyampaian(@PathVariable Long id) {
return deleteMetodePenyampaianService.execute(MetodePenyampaianRequest.builder()
.id(id)
.build());
}
}