refactor base smartproc

This commit is contained in:
dirgantarasiahaan 2023-05-23 11:26:15 +07:00
parent 329d515577
commit beff4babe0
85 changed files with 1642 additions and 839 deletions

90
.gitignore vendored
View File

@ -1,50 +1,46 @@
# These are some examples of commonly ignored file patterns. *#
# You should customize this list as applicable to your project. *.iml
# Learn more about .gitignore: *.ipr
# https://www.atlassian.com/git/tutorials/saving-changes/gitignore *.iws
# Node artifact files
node_modules/
dist/
# Compiled Java class files
*.class
# Compiled Python bytecode
*.py[cod]
# Log files
*.log
# Package files
*.jar *.jar
*.sw?
# Maven *~
target/ .#*
dist/ .*.md.html
# JetBrains IDE
.idea/
# Unit test reports
TEST*.xml
# Generated by MacOS
.DS_Store .DS_Store
.attach_pid*
.classpath
.factorypath
.gradle
.idea
.metadata
.project
.recommenders
.settings
.springBeans
.vscode
/code
MANIFEST.MF
_site/
activemq-data
bin
build
!/**/src/**/bin
!/**/src/**/build
build.log
dependency-reduced-pom.xml
dump.rdb
interpolated*.xml
lib/
manifest.yml
out
overridedb.*
target
transaction-logs
.flattened-pom.xml
secrets.yml
.gradletasknamecache
.sts4-cache
# Generated by Windows mvnw
Thumbs.db mvnw.cmd
# Applications
*.app
*.exe
*.war
# Large media files
*.mp4
*.tiff
*.avi
*.flv
*.mov
*.wmv

23
pom.xml
View File

@ -5,7 +5,7 @@
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.6</version> <version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>com.iconplus</groupId> <groupId>com.iconplus</groupId>
@ -14,7 +14,7 @@
<name>smartproc</name> <name>smartproc</name>
<description>Initialisasi Smartproc Framework</description> <description>Initialisasi Smartproc Framework</description>
<properties> <properties>
<java.version>17</java.version> <java.version>11</java.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
@ -29,6 +29,24 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave</artifactId>
<version>5.16.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@ -36,6 +54,7 @@
<scope>runtime</scope> <scope>runtime</scope>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>

View File

@ -0,0 +1,82 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.model.response.GetListJenisAnggaranResponse;
import com.iconplus.smartproc.model.response.JenisAnggaranResponse;
import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import com.iconplus.smartproc.service.jenisanggaran.*;
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/jenisanggaran")
public class JenisAnggaranController {
@Autowired
private JenisAnggaranRepository jenisanggaranRepository;
private final GetListJenisAnggaranService getListJenisAnggaranService;
private final GetJenisAnggaranByIdService getJenisAnggaranByIdService;
private final PostCreateJenisAnggaranService postCreateJenisAnggaranService;
private final PutUpdateJenisAnggaranService putUpdateJenisAnggaranService;
private final DeleteJenisAnggaranService deleteJenisAnggaranService;
public JenisAnggaranController(GetListJenisAnggaranService getListJenisAnggaranService,
GetJenisAnggaranByIdService getJenisAnggaranByIdService,
PostCreateJenisAnggaranService postCreateJenisAnggaranService,
PutUpdateJenisAnggaranService putUpdateJenisAnggaranService,
DeleteJenisAnggaranService deleteJenisAnggaranService) {
this.getListJenisAnggaranService = getListJenisAnggaranService;
this.getJenisAnggaranByIdService = getJenisAnggaranByIdService;
this.postCreateJenisAnggaranService = postCreateJenisAnggaranService;
this.putUpdateJenisAnggaranService = putUpdateJenisAnggaranService;
this.deleteJenisAnggaranService = deleteJenisAnggaranService;
}
@GetMapping
public GetListJenisAnggaranResponse getListJenisAnggaran(@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);
JenisAnggaranRequest jenisAnggaranRequest = JenisAnggaranRequest.builder()
.search(search)
.pageable(pageable)
.build();
return getListJenisAnggaranService.execute(jenisAnggaranRequest);
}
@PostMapping
public JenisAnggaranResponse createJenisAnggaran(@RequestBody JenisAnggaranRequest jenisAnggaranRequest) {
return postCreateJenisAnggaranService.execute(jenisAnggaranRequest);
}
@GetMapping("/{id}")
public JenisAnggaranResponse getJenisAnggaranById(@PathVariable Long id) {
return getJenisAnggaranByIdService.execute(JenisAnggaranRequest.builder()
.id(id)
.build());
}
@PutMapping("/{id}")
public JenisAnggaranResponse updateJenisanggaran(@PathVariable Long id,
@RequestBody JenisAnggaranRequest jenisAnggaranRequest){
jenisAnggaranRequest.setId(id);
return putUpdateJenisAnggaranService.execute(jenisAnggaranRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteJenisAnggaran(@PathVariable Long id) {
return deleteJenisAnggaranService.execute(JenisAnggaranRequest.builder()
.id(id)
.build());
}
}

View File

@ -1,8 +1,8 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Jeniskontrak; import com.iconplus.smartproc.model.entity.JenisKontrak;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.JeniskontrakRepository; import com.iconplus.smartproc.repository.JenisKontrakRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -14,47 +14,47 @@ import java.util.Map;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/jeniskontrak") @RequestMapping("/api/jeniskontrak")
public class JeniskontrakController { public class JenisKontrakController {
@Autowired @Autowired
private JeniskontrakRepository jeniskontrakRepository; private JenisKontrakRepository jeniskontrakRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Jeniskontrak> getAllJeniskontraks(){ public List<JenisKontrak> getAllJeniskontraks(){
return jeniskontrakRepository.findAll(); return jeniskontrakRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Jeniskontrak createJeniskontrak(@RequestBody Jeniskontrak jeniskontrak) { public JenisKontrak createJeniskontrak(@RequestBody JenisKontrak jeniskontrak) {
return jeniskontrakRepository.save(jeniskontrak); return jeniskontrakRepository.save(jeniskontrak);
} }
// get jeniskontrak by id rest api // get jeniskontrak by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Jeniskontrak> getJeniskontrakById(@PathVariable Long id) { public ResponseEntity<JenisKontrak> getJeniskontrakById(@PathVariable Long id) {
Jeniskontrak jeniskontrak = jeniskontrakRepository.findById(id) JenisKontrak jeniskontrak = jeniskontrakRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id));
return ResponseEntity.ok(jeniskontrak); return ResponseEntity.ok(jeniskontrak);
} }
// update jeniskontrak rest api // update jeniskontrak rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Jeniskontrak> updateJeniskontrak(@PathVariable Long id, @RequestBody Jeniskontrak jeniskontrakDetails){ public ResponseEntity<JenisKontrak> updateJeniskontrak(@PathVariable Long id, @RequestBody JenisKontrak jenisKontrakDetails){
Jeniskontrak jeniskontrak = jeniskontrakRepository.findById(id) JenisKontrak jeniskontrak = jeniskontrakRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id));
jeniskontrak.setJeniskontrak(jeniskontrakDetails.getJeniskontrak()); jeniskontrak.setJenisKontrak(jenisKontrakDetails.getJenisKontrak());
jeniskontrak.setKeterangan(jeniskontrakDetails.getKeterangan()); jeniskontrak.setKeterangan(jenisKontrakDetails.getKeterangan());
Jeniskontrak updatedJeniskontrak = jeniskontrakRepository.save(jeniskontrak); JenisKontrak updatedJenisKontrak = jeniskontrakRepository.save(jeniskontrak);
return ResponseEntity.ok(updatedJeniskontrak); return ResponseEntity.ok(updatedJenisKontrak);
} }
// delete jeniskontrak rest api // delete jeniskontrak rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteJeniskontrak(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteJeniskontrak(@PathVariable Long id){
Jeniskontrak jeniskontrak = jeniskontrakRepository.findById(id) JenisKontrak jeniskontrak = jeniskontrakRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Jeniskontrak not exist with id :" + id));
jeniskontrakRepository.delete(jeniskontrak); jeniskontrakRepository.delete(jeniskontrak);

View File

@ -1,8 +1,8 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Jenispengadaan; import com.iconplus.smartproc.model.entity.JenisPengadaan;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.JenispengadaanRepository; import com.iconplus.smartproc.repository.JenisPengadaanRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -14,47 +14,47 @@ import java.util.Map;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/jenispengadaan") @RequestMapping("/api/jenispengadaan")
public class JenispengadaanController { public class JenisPengadaanController {
@Autowired @Autowired
private JenispengadaanRepository jenispengadaanRepository; private JenisPengadaanRepository jenispengadaanRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Jenispengadaan> getAllJenispengadaans(){ public List<JenisPengadaan> getAllJenispengadaans(){
return jenispengadaanRepository.findAll(); return jenispengadaanRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Jenispengadaan createJenispengadaan(@RequestBody Jenispengadaan jenispengadaan) { public JenisPengadaan createJenispengadaan(@RequestBody JenisPengadaan jenispengadaan) {
return jenispengadaanRepository.save(jenispengadaan); return jenispengadaanRepository.save(jenispengadaan);
} }
// get jenispengadaan by id rest api // get jenispengadaan by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Jenispengadaan> getJenispengadaanById(@PathVariable Long id) { public ResponseEntity<JenisPengadaan> getJenispengadaanById(@PathVariable Long id) {
Jenispengadaan jenispengadaan = jenispengadaanRepository.findById(id) JenisPengadaan jenispengadaan = jenispengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Jenispengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Jenispengadaan not exist with id :" + id));
return ResponseEntity.ok(jenispengadaan); return ResponseEntity.ok(jenispengadaan);
} }
// update jenispengadaan rest api // update jenispengadaan rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Jenispengadaan> updateJenispengadaan(@PathVariable Long id, @RequestBody Jenispengadaan jenispengadaanDetails){ public ResponseEntity<JenisPengadaan> updateJenispengadaan(@PathVariable Long id, @RequestBody JenisPengadaan jenisPengadaanDetails){
Jenispengadaan jenispengadaan = jenispengadaanRepository.findById(id) JenisPengadaan jenispengadaan = jenispengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Jenispengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Jenispengadaan not exist with id :" + id));
jenispengadaan.setJenispengadaan(jenispengadaanDetails.getJenispengadaan()); jenispengadaan.setJenisPengadaan(jenisPengadaanDetails.getJenisPengadaan());
jenispengadaan.setKeterangan(jenispengadaanDetails.getKeterangan()); jenispengadaan.setKeterangan(jenisPengadaanDetails.getKeterangan());
Jenispengadaan updatedJenispengadaan = jenispengadaanRepository.save(jenispengadaan); JenisPengadaan updatedJenisPengadaan = jenispengadaanRepository.save(jenispengadaan);
return ResponseEntity.ok(updatedJenispengadaan); return ResponseEntity.ok(updatedJenisPengadaan);
} }
// delete jenispengadaan rest api // delete jenispengadaan rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteJenispengadaan(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteJenispengadaan(@PathVariable Long id){
Jenispengadaan jenispengadaan = jenispengadaanRepository.findById(id) JenisPengadaan jenispengadaan = jenispengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Supposmatrix not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Supposmatrix not exist with id :" + id));
jenispengadaanRepository.delete(jenispengadaan); jenispengadaanRepository.delete(jenispengadaan);

View File

@ -1,65 +0,0 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Jenisanggaran;
import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.JenisanggaranRepository;
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;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController
@RequestMapping("/api/jenisanggaran")
public class JenisanggaranController {
@Autowired
private JenisanggaranRepository jenisanggaranRepository;
//get all data
@GetMapping
public List<Jenisanggaran> getAllJenisanggarans(){
return jenisanggaranRepository.findAll();
}
// create
@PostMapping
public Jenisanggaran createJenisanggaran(@RequestBody Jenisanggaran jenisanggaran) {
return jenisanggaranRepository.save(jenisanggaran);
}
// get jenisanggaran by id rest api
@GetMapping("/{id}")
public ResponseEntity<Jenisanggaran> getJenisanggaranById(@PathVariable Long id) {
Jenisanggaran jenisanggaran = jenisanggaranRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Jenisanggaran not exist with id :" + id));
return ResponseEntity.ok(jenisanggaran);
}
// update jenisanggaran rest api
@PutMapping("/{id}")
public ResponseEntity<Jenisanggaran> updateJenisanggaran(@PathVariable Long id, @RequestBody Jenisanggaran jenisanggaranDetails){
Jenisanggaran jenisanggaran = jenisanggaranRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Jenisanggaran not exist with id :" + id));
jenisanggaran.setJenisanggaran(jenisanggaranDetails.getJenisanggaran());
jenisanggaran.setKeterangan(jenisanggaranDetails.getKeterangan());
Jenisanggaran updatedJenisanggaran = jenisanggaranRepository.save(jenisanggaran);
return ResponseEntity.ok(updatedJenisanggaran);
}
// delete jenisanggaran rest api
@DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteJenisanggaran(@PathVariable Long id){
Jenisanggaran jenisanggaran = jenisanggaranRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Supposmatrix not exist with id :" + id));
jenisanggaranRepository.delete(jenisanggaran);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return ResponseEntity.ok(response);
}
}

View File

@ -1,6 +1,6 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Lokasi; import com.iconplus.smartproc.model.entity.Lokasi;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.LokasiRepository; import com.iconplus.smartproc.repository.LokasiRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -1,8 +1,8 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Metodepengadaan; import com.iconplus.smartproc.model.entity.MetodePengadaan;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.MetodepengadaanRepository; import com.iconplus.smartproc.repository.MetodePengadaanRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -14,47 +14,47 @@ import java.util.Map;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/metodepengadaan") @RequestMapping("/api/metodepengadaan")
public class MetodepengadaanController { public class MetodePengadaanController {
@Autowired @Autowired
private MetodepengadaanRepository metodepengadaanRepository; private MetodePengadaanRepository metodepengadaanRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Metodepengadaan> getAllMetodepengadaans(){ public List<MetodePengadaan> getAllMetodepengadaans(){
return metodepengadaanRepository.findAll(); return metodepengadaanRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Metodepengadaan createMetodepengadaan(@RequestBody Metodepengadaan metodepengadaan) { public MetodePengadaan createMetodepengadaan(@RequestBody MetodePengadaan metodepengadaan) {
return metodepengadaanRepository.save(metodepengadaan); return metodepengadaanRepository.save(metodepengadaan);
} }
// get metodepengadaan by id rest api // get metodepengadaan by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Metodepengadaan> getMetodepengadaanById(@PathVariable Long id) { public ResponseEntity<MetodePengadaan> getMetodepengadaanById(@PathVariable Long id) {
Metodepengadaan metodepengadaan = metodepengadaanRepository.findById(id) MetodePengadaan metodepengadaan = metodepengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id));
return ResponseEntity.ok(metodepengadaan); return ResponseEntity.ok(metodepengadaan);
} }
// update metodepengadaan rest api // update metodepengadaan rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Metodepengadaan> updateMetodepengadaan(@PathVariable Long id, @RequestBody Metodepengadaan metodepengadaanDetails){ public ResponseEntity<MetodePengadaan> updateMetodepengadaan(@PathVariable Long id, @RequestBody MetodePengadaan metodePengadaanDetails){
Metodepengadaan metodepengadaan = metodepengadaanRepository.findById(id) MetodePengadaan metodepengadaan = metodepengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id));
metodepengadaan.setMetodepengadaan(metodepengadaanDetails.getMetodepengadaan()); metodepengadaan.setMetodePengadaan(metodePengadaanDetails.getMetodePengadaan());
metodepengadaan.setKeterangan(metodepengadaanDetails.getKeterangan()); metodepengadaan.setKeterangan(metodePengadaanDetails.getKeterangan());
Metodepengadaan updatedMetodepengadaan = metodepengadaanRepository.save(metodepengadaan); MetodePengadaan updatedMetodePengadaan = metodepengadaanRepository.save(metodepengadaan);
return ResponseEntity.ok(updatedMetodepengadaan); return ResponseEntity.ok(updatedMetodePengadaan);
} }
// delete metodepengadaan rest api // delete metodepengadaan rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteMetodepengadaan(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteMetodepengadaan(@PathVariable Long id){
Metodepengadaan metodepengadaan = metodepengadaanRepository.findById(id) MetodePengadaan metodepengadaan = metodepengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Metodepengadaan not exist with id :" + id));
metodepengadaanRepository.delete(metodepengadaan); metodepengadaanRepository.delete(metodepengadaan);

View File

@ -1,8 +1,8 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Metodepenyampaian; import com.iconplus.smartproc.model.entity.MetodePenyampaian;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.MetodepenyampaianRepository; import com.iconplus.smartproc.repository.MetodePenyampaianRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -14,47 +14,47 @@ import java.util.Map;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/metodepenyampaian") @RequestMapping("/api/metodepenyampaian")
public class MetodepenyampaianController { public class MetodePenyampaianController {
@Autowired @Autowired
private MetodepenyampaianRepository metodepenyampaianRepository; private MetodePenyampaianRepository metodepenyampaianRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Metodepenyampaian> getAllMetodepenyampaians(){ public List<MetodePenyampaian> getAllMetodepenyampaians(){
return metodepenyampaianRepository.findAll(); return metodepenyampaianRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Metodepenyampaian createMetodepenyampaian(@RequestBody Metodepenyampaian metodepenyampaian) { public MetodePenyampaian createMetodepenyampaian(@RequestBody MetodePenyampaian metodepenyampaian) {
return metodepenyampaianRepository.save(metodepenyampaian); return metodepenyampaianRepository.save(metodepenyampaian);
} }
// get metodepenyampaian by id rest api // get metodepenyampaian by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Metodepenyampaian> getMetodepenyampaianById(@PathVariable Long id) { public ResponseEntity<MetodePenyampaian> getMetodepenyampaianById(@PathVariable Long id) {
Metodepenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id) MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id));
return ResponseEntity.ok(metodepenyampaian); return ResponseEntity.ok(metodepenyampaian);
} }
// update metodepenyampaian rest api // update metodepenyampaian rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Metodepenyampaian> updateMetodepenyampaian(@PathVariable Long id, @RequestBody Metodepenyampaian metodepenyampaianDetails){ public ResponseEntity<MetodePenyampaian> updateMetodepenyampaian(@PathVariable Long id, @RequestBody MetodePenyampaian metodePenyampaianDetails){
Metodepenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id) MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id));
metodepenyampaian.setMetodepenyampaian(metodepenyampaianDetails.getMetodepenyampaian()); metodepenyampaian.setMetodePenyampaian(metodePenyampaianDetails.getMetodePenyampaian());
metodepenyampaian.setKeterangan(metodepenyampaianDetails.getKeterangan()); metodepenyampaian.setKeterangan(metodePenyampaianDetails.getKeterangan());
Metodepenyampaian updatedMetodepenyampaian = metodepenyampaianRepository.save(metodepenyampaian); MetodePenyampaian updatedMetodePenyampaian = metodepenyampaianRepository.save(metodepenyampaian);
return ResponseEntity.ok(updatedMetodepenyampaian); return ResponseEntity.ok(updatedMetodePenyampaian);
} }
// delete metodepenyampaian rest api // delete metodepenyampaian rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteMetodepenyampaian(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteMetodepenyampaian(@PathVariable Long id){
Metodepenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id) MetodePenyampaian metodepenyampaian = metodepenyampaianRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Metodepenyampaian not exist with id :" + id));
metodepenyampaianRepository.delete(metodepenyampaian); metodepenyampaianRepository.delete(metodepenyampaian);

View File

@ -1,6 +1,6 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Roles; import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.RolesRepository; import com.iconplus.smartproc.repository.RolesRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -44,7 +44,7 @@ public class RolesController {
Roles roles = rolesRepository.findById(id) Roles roles = rolesRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Roles not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Roles not exist with id :" + id));
roles.setRoles(rolesDetails.getRoles()); roles.setRole(rolesDetails.getRole());
roles.setKeterangan(rolesDetails.getKeterangan()); roles.setKeterangan(rolesDetails.getKeterangan());
roles.setIsactive(rolesDetails.getIsactive()); roles.setIsactive(rolesDetails.getIsactive());

View File

@ -1,8 +1,8 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Strategipengadaan; import com.iconplus.smartproc.model.entity.StrategiPengadaan;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.StrategipengadaanRepository; import com.iconplus.smartproc.repository.StrategiPengadaanRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -14,47 +14,47 @@ import java.util.Map;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/strategipengadaan") @RequestMapping("/api/strategipengadaan")
public class StrategipengadaanController { public class StrategiPengadaanController {
@Autowired @Autowired
private StrategipengadaanRepository strategipengadaanRepository; private StrategiPengadaanRepository strategipengadaanRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Strategipengadaan> getAllstrategipengadaans(){ public List<StrategiPengadaan> getAllstrategipengadaans(){
return strategipengadaanRepository.findAll(); return strategipengadaanRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Strategipengadaan createStrategipengadaan(@RequestBody Strategipengadaan strategipengadaan) { public StrategiPengadaan createStrategipengadaan(@RequestBody StrategiPengadaan strategipengadaan) {
return strategipengadaanRepository.save(strategipengadaan); return strategipengadaanRepository.save(strategipengadaan);
} }
// get strategipengadaan by id rest api // get strategipengadaan by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Strategipengadaan> getStrategipengadaanById(@PathVariable Long id) { public ResponseEntity<StrategiPengadaan> getStrategipengadaanById(@PathVariable Long id) {
Strategipengadaan strategipengadaan = strategipengadaanRepository.findById(id) StrategiPengadaan strategipengadaan = strategipengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id));
return ResponseEntity.ok(strategipengadaan); return ResponseEntity.ok(strategipengadaan);
} }
// update strategipengadaan rest api // update strategipengadaan rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Strategipengadaan> updateStrategipengadaan(@PathVariable Long id, @RequestBody Strategipengadaan strategipengadaanDetails){ public ResponseEntity<StrategiPengadaan> updateStrategipengadaan(@PathVariable Long id, @RequestBody StrategiPengadaan strategiPengadaanDetails){
Strategipengadaan strategipengadaan = strategipengadaanRepository.findById(id) StrategiPengadaan strategipengadaan = strategipengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id));
strategipengadaan.setStrategipengadaan(strategipengadaanDetails.getStrategipengadaan()); strategipengadaan.setStrategipengadaan(strategiPengadaanDetails.getStrategipengadaan());
strategipengadaan.setKeterangan(strategipengadaanDetails.getKeterangan()); strategipengadaan.setKeterangan(strategiPengadaanDetails.getKeterangan());
Strategipengadaan updatedStrategipengadaan = strategipengadaanRepository.save(strategipengadaan); StrategiPengadaan updatedStrategiPengadaan = strategipengadaanRepository.save(strategipengadaan);
return ResponseEntity.ok(updatedStrategipengadaan); return ResponseEntity.ok(updatedStrategiPengadaan);
} }
// delete strategipengadaan rest api // delete strategipengadaan rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteStrategipengadaan(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteStrategipengadaan(@PathVariable Long id){
Strategipengadaan strategipengadaan = strategipengadaanRepository.findById(id) StrategiPengadaan strategipengadaan = strategipengadaanRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Strategipengadaan not exist with id :" + id));
strategipengadaanRepository.delete(strategipengadaan); strategipengadaanRepository.delete(strategipengadaan);

View File

@ -17,53 +17,53 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.entity.Sumberdana; import com.iconplus.smartproc.model.entity.SumberDana;
import com.iconplus.smartproc.repository.SumberdanaRepository; import com.iconplus.smartproc.repository.SumberDanaRepository;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/sumberdana") @RequestMapping("/api/sumberdana")
public class SumberdanaController { public class SumberDanaController {
@Autowired @Autowired
private SumberdanaRepository sumberdanaRepository; private SumberDanaRepository sumberdanaRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Sumberdana> getAllSumberdanas(){ public List<SumberDana> getAllSumberdanas(){
return sumberdanaRepository.findAll(); return sumberdanaRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Sumberdana createSumberdana(@RequestBody Sumberdana sumberdana) { public SumberDana createSumberdana(@RequestBody SumberDana sumberdana) {
return sumberdanaRepository.save(sumberdana); return sumberdanaRepository.save(sumberdana);
} }
// get sumberdana by id rest api // get sumberdana by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Sumberdana> getSumberdanaById(@PathVariable Long id) { public ResponseEntity<SumberDana> getSumberdanaById(@PathVariable Long id) {
Sumberdana sumberdana = sumberdanaRepository.findById(id) SumberDana sumberdana = sumberdanaRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id));
return ResponseEntity.ok(sumberdana); return ResponseEntity.ok(sumberdana);
} }
// update sumberdana rest api // update sumberdana rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Sumberdana> updateSumberdana(@PathVariable Long id, @RequestBody Sumberdana sumberdanaDetails){ public ResponseEntity<SumberDana> updateSumberdana(@PathVariable Long id, @RequestBody SumberDana sumberDanaDetails){
Sumberdana sumberdana = sumberdanaRepository.findById(id) SumberDana sumberdana = sumberdanaRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id));
sumberdana.setSumberdana(sumberdanaDetails.getSumberdana()); sumberdana.setSumberDana(sumberDanaDetails.getSumberDana());
sumberdana.setKeterangan(sumberdanaDetails.getKeterangan()); sumberdana.setKeterangan(sumberDanaDetails.getKeterangan());
Sumberdana updatedSumberdana = sumberdanaRepository.save(sumberdana); SumberDana updatedSumberDana = sumberdanaRepository.save(sumberdana);
return ResponseEntity.ok(updatedSumberdana); return ResponseEntity.ok(updatedSumberDana);
} }
// delete sumberdana rest api // delete sumberdana rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteSumberdana(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteSumberdana(@PathVariable Long id){
Sumberdana sumberdana = sumberdanaRepository.findById(id) SumberDana sumberdana = sumberdanaRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Sumberdana not exist with id :" + id));
sumberdanaRepository.delete(sumberdana); sumberdanaRepository.delete(sumberdana);

View File

@ -17,53 +17,53 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.entity.Supplypositioningmatrix; import com.iconplus.smartproc.model.entity.SupplyPositioningMatrix;
import com.iconplus.smartproc.repository.SupplypositioningmatrixRepository; import com.iconplus.smartproc.repository.SupplyPositioningMatrixRepository;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/supplypositioningmatrix") @RequestMapping("/api/supplypositioningmatrix")
public class SupplypositioningmatrixController { public class SupplyPositioningMatrixController {
@Autowired @Autowired
private SupplypositioningmatrixRepository supplypositioningmatrixRepository; private SupplyPositioningMatrixRepository supplypositioningmatrixRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Supplypositioningmatrix> getAllSupplypositioningmatrix(){ public List<SupplyPositioningMatrix> getAllSupplypositioningmatrix(){
return supplypositioningmatrixRepository.findAll(); return supplypositioningmatrixRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Supplypositioningmatrix createSupplypositioningmatrix(@RequestBody Supplypositioningmatrix supplypositioningmatrix) { public SupplyPositioningMatrix createSupplypositioningmatrix(@RequestBody SupplyPositioningMatrix supplypositioningmatrix) {
return supplypositioningmatrixRepository.save(supplypositioningmatrix); return supplypositioningmatrixRepository.save(supplypositioningmatrix);
} }
// get supplypositioningmatrix by id rest api // get supplypositioningmatrix by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Supplypositioningmatrix> getSupplypositioningmatrixById(@PathVariable Long id) { public ResponseEntity<SupplyPositioningMatrix> getSupplypositioningmatrixById(@PathVariable Long id) {
Supplypositioningmatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id) SupplyPositioningMatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Supplypositioningmatrix not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Supplypositioningmatrix not exist with id :" + id));
return ResponseEntity.ok(supplypositioningmatrix); return ResponseEntity.ok(supplypositioningmatrix);
} }
// update jenispengadaan rest api // update jenispengadaan rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Supplypositioningmatrix> updateSupplypositioningmatrix(@PathVariable Long id, @RequestBody Supplypositioningmatrix supplypositioningmatrixDetails){ public ResponseEntity<SupplyPositioningMatrix> updateSupplypositioningmatrix(@PathVariable Long id, @RequestBody SupplyPositioningMatrix supplyPositioningMatrixDetails){
Supplypositioningmatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id) SupplyPositioningMatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Supplypositioningmatrix not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Supplypositioningmatrix not exist with id :" + id));
supplypositioningmatrix.setSupplypositioningmatrix(supplypositioningmatrixDetails.getSupplypositioningmatrix()); supplypositioningmatrix.setSupplypositioningmatrix(supplyPositioningMatrixDetails.getSupplypositioningmatrix());
supplypositioningmatrix.setKeterangan(supplypositioningmatrixDetails.getKeterangan()); supplypositioningmatrix.setKeterangan(supplyPositioningMatrixDetails.getKeterangan());
Supplypositioningmatrix updatedSupplypositioningmatrix = supplypositioningmatrixRepository.save(supplypositioningmatrix); SupplyPositioningMatrix updatedSupplyPositioningMatrix = supplypositioningmatrixRepository.save(supplypositioningmatrix);
return ResponseEntity.ok(updatedSupplypositioningmatrix); return ResponseEntity.ok(updatedSupplyPositioningMatrix);
} }
// delete jenispengadaan rest api // delete jenispengadaan rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteSupplypositioningmatrix(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteSupplypositioningmatrix(@PathVariable Long id){
Supplypositioningmatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id) SupplyPositioningMatrix supplypositioningmatrix = supplypositioningmatrixRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Unit inisiator not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Unit inisiator not exist with id :" + id));
supplypositioningmatrixRepository.delete(supplypositioningmatrix); supplypositioningmatrixRepository.delete(supplypositioningmatrix);

View File

@ -17,53 +17,53 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.entity.Unitinisiator; import com.iconplus.smartproc.model.entity.UnitInisiator;
import com.iconplus.smartproc.repository.UnitinisiatorRepository; import com.iconplus.smartproc.repository.UnitInisiatorRepository;
@CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true") @CrossOrigin(origins = "http://localhost:8080", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/unitinisiator") @RequestMapping("/api/unitinisiator")
public class UnitinisiatorController { public class UnitInisiatorController {
@Autowired @Autowired
private UnitinisiatorRepository unitinisiatorRepository; private UnitInisiatorRepository unitinisiatorRepository;
//get all data //get all data
@GetMapping @GetMapping
public List<Unitinisiator> getAllUnitinisiator(){ public List<UnitInisiator> getAllUnitinisiator(){
return unitinisiatorRepository.findAll(); return unitinisiatorRepository.findAll();
} }
// create // create
@PostMapping @PostMapping
public Unitinisiator createUnitinisiator(@RequestBody Unitinisiator unitinisiator) { public UnitInisiator createUnitinisiator(@RequestBody UnitInisiator unitinisiator) {
return unitinisiatorRepository.save(unitinisiator); return unitinisiatorRepository.save(unitinisiator);
} }
// get unitinisiator by id rest api // get unitinisiator by id rest api
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Unitinisiator> getUnitinisiatorById(@PathVariable Long id) { public ResponseEntity<UnitInisiator> getUnitinisiatorById(@PathVariable Long id) {
Unitinisiator unitinisiator = unitinisiatorRepository.findById(id) UnitInisiator unitinisiator = unitinisiatorRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Unitinisiator not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Unitinisiator not exist with id :" + id));
return ResponseEntity.ok(unitinisiator); return ResponseEntity.ok(unitinisiator);
} }
// update jenispengadaan rest api // update jenispengadaan rest api
@PutMapping("/{id}") @PutMapping("/{id}")
public ResponseEntity<Unitinisiator> updateUnitinisiator(@PathVariable Long id, @RequestBody Unitinisiator unitinisiatorDetails){ public ResponseEntity<UnitInisiator> updateUnitinisiator(@PathVariable Long id, @RequestBody UnitInisiator unitInisiatorDetails){
Unitinisiator unitinisiator = unitinisiatorRepository.findById(id) UnitInisiator unitinisiator = unitinisiatorRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Unitinisiator not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Unitinisiator not exist with id :" + id));
unitinisiator.setUnitinisiator(unitinisiatorDetails.getUnitinisiator()); unitinisiator.setUnitInisiator(unitInisiatorDetails.getUnitInisiator());
unitinisiator.setKeterangan(unitinisiatorDetails.getKeterangan()); unitinisiator.setKeterangan(unitInisiatorDetails.getKeterangan());
Unitinisiator updatedUnitinisiator = unitinisiatorRepository.save(unitinisiator); UnitInisiator updatedUnitInisiator = unitinisiatorRepository.save(unitinisiator);
return ResponseEntity.ok(updatedUnitinisiator); return ResponseEntity.ok(updatedUnitInisiator);
} }
// delete jenispengadaan rest api // delete jenispengadaan rest api
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteUnitinisiator(@PathVariable Long id){ public ResponseEntity<Map<String, Boolean>> deleteUnitinisiator(@PathVariable Long id){
Unitinisiator unitinisiator = unitinisiatorRepository.findById(id) UnitInisiator unitinisiator = unitinisiatorRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Unit inisiator not exist with id :" + id)); .orElseThrow(() -> new ResourceNotFoundException("Unit inisiator not exist with id :" + id));
unitinisiatorRepository.delete(unitinisiator); unitinisiatorRepository.delete(unitinisiator);

View File

@ -1,6 +1,6 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.entity.Users; import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.exception.ResourceNotFoundException; import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.UsersRepository; import com.iconplus.smartproc.repository.UsersRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -48,10 +48,10 @@ public class UsersController {
users.setNama(usersDetails.getNama()); users.setNama(usersDetails.getNama());
users.setEmail(usersDetails.getEmail()); users.setEmail(usersDetails.getEmail());
users.setPassword(usersDetails.getPassword()); users.setPassword(usersDetails.getPassword());
users.setInstansi(usersDetails.getInstansi()); // users.setInstansi(usersDetails.getInstansi());
users.setBidang(usersDetails.getBidang()); // users.setBidang(usersDetails.getBidang());
users.setJabatan(usersDetails.getJabatan()); // users.setJabatan(usersDetails.getJabatan());
users.setRole(usersDetails.getRole()); // users.setRole(usersDetails.getRole());
Users updatedUsers = usersRepository.save(users); Users updatedUsers = usersRepository.save(users);
return ResponseEntity.ok(updatedUsers); return ResponseEntity.ok(updatedUsers);

View File

@ -1,40 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "jenisanggaran")
public class Jenisanggaran {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String jenisanggaran;
private String keterangan;
public Jenisanggaran() {
}
public Jenisanggaran(String jenisanggaran, String keterangan) {
super();
this.jenisanggaran = jenisanggaran;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getJenisanggaran() {
return jenisanggaran;
}
public void setJenisanggaran(String jenisanggaran) {
this.jenisanggaran = jenisanggaran;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,42 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "jeniskontrak")
public class Jeniskontrak {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String jeniskontrak;
private String keterangan;
public Jeniskontrak() {
}
public Jeniskontrak(String jeniskontrak, String keterangan) {
super();
this.jeniskontrak = jeniskontrak;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getJeniskontrak() {
return jeniskontrak;
}
public void setJeniskontrak(String jeniskontrak) {
this.jeniskontrak = jeniskontrak;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,40 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "jenispengadaan")
public class Jenispengadaan {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String jenispengadaan;
private String keterangan;
public Jenispengadaan() {
}
public Jenispengadaan(String jenispengadaan, String keterangan) {
super();
this.jenispengadaan = jenispengadaan;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getJenispengadaan() {
return jenispengadaan;
}
public void setJenispengadaan(String jenispengadaan) {
this.jenispengadaan = jenispengadaan;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,40 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "lokasi")
public class Lokasi {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String lokasi;
private String keterangan;
public Lokasi() {
}
public Lokasi(String lokasi, String keterangan) {
super();
this.lokasi = lokasi;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getLokasi() {
return lokasi;
}
public void setLokasi(String lokasi) {
this.lokasi = lokasi;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,41 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "metodepengadaan")
public class Metodepengadaan {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String metodepengadaan;
private String keterangan;
public Metodepengadaan() {
}
public Metodepengadaan(String metodepengadaan, String keterangan) {
super();
this.metodepengadaan = metodepengadaan;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getMetodepengadaan() {
return metodepengadaan;
}
public void setMetodepengadaan(String metodepengadaan) {
this.metodepengadaan = metodepengadaan;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,41 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "metodepenyampaian")
public class Metodepenyampaian {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String metodepenyampaian;
private String keterangan;
public Metodepenyampaian() {
}
public Metodepenyampaian(String metodepenyampaian, String keterangan) {
super();
this.metodepenyampaian = metodepenyampaian;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getMetodepenyampaian() {
return metodepenyampaian;
}
public void setMetodepenyampaian(String metodepenyampaian) {
this.metodepenyampaian = metodepenyampaian;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,48 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "roles")
public class Roles {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String roles;
private String keterangan;
private Boolean is_active;
public Roles() {
}
public Roles(String roles, String keterangan, Boolean is_active) {
super();
this.roles = roles;
this.keterangan = keterangan;
this.is_active = is_active;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getRoles() {
return roles;
}
public void setRoles(String roles) {
this.roles = roles;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
public Boolean getIsactive() {
return is_active;
}
public void setIsactive(Boolean is_active) {
this.is_active = is_active;
}
}

View File

@ -1,40 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "strategipengadaan")
public class Strategipengadaan {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String strategipengadaan;
private String keterangan;
public Strategipengadaan() {
}
public Strategipengadaan(String strategipengadaan, String keterangan) {
super();
this.strategipengadaan = strategipengadaan;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getStrategipengadaan() {
return strategipengadaan;
}
public void setStrategipengadaan(String strategipengadaan) {
this.strategipengadaan = strategipengadaan;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,40 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "sumberdana")
public class Sumberdana {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String sumberdana;
private String keterangan;
public Sumberdana() {
}
public Sumberdana(String sumberdana, String keterangan) {
super();
this.sumberdana = sumberdana;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getSumberdana() {
return sumberdana;
}
public void setSumberdana(String sumberdana) {
this.sumberdana = sumberdana;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,42 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "supplypositioningmatrix")
public class Supplypositioningmatrix {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String supplypositioningmatrix;
private String keterangan;
public Supplypositioningmatrix() {
}
public Supplypositioningmatrix(String supplypositioningmatrix, String keterangan) {
super();
this.supplypositioningmatrix = supplypositioningmatrix;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getSupplypositioningmatrix() {
return supplypositioningmatrix;
}
public void setSupplypositioningmatrix(String supplypositioningmatrix) {
this.supplypositioningmatrix = supplypositioningmatrix;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,41 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "unitinisiator")
public class Unitinisiator {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String unitinisiator;
private String keterangan;
public Unitinisiator() {
}
public Unitinisiator(String unitinisiator, String keterangan) {
super();
this.unitinisiator = unitinisiator;
this.keterangan = keterangan;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUnitinisiator() {
return unitinisiator;
}
public void setUnitinisiator(String unitinisiator) {
this.unitinisiator = unitinisiator;
}
public String getKeterangan() {
return keterangan;
}
public void setKeterangan(String keterangan) {
this.keterangan = keterangan;
}
}

View File

@ -1,96 +0,0 @@
package com.iconplus.smartproc.entity;
import jakarta.persistence.*;
@Entity
@Table(name = "users")
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String username;
private String nama;
private String email;
private String password;
private String instansi_id;
private String bidang_id;
private String jabatan;
private String role_id;
private Boolean is_active;
public Users() {
}
public Users(String username, String nama, String email, String password, String instansi_id, String bidang_id, String jabatan, String role_id, Boolean is_active) {
super();
this.username = username;
this.nama = nama;
this.email = email;
this.password = password;
this.instansi_id = instansi_id;
this.bidang_id = bidang_id;
this.jabatan = jabatan;
this.role_id = role_id;
this.is_active = is_active;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getInstansi() {
return instansi_id;
}
public void setInstansi(String instansi_id) {
this.instansi_id = instansi_id;
}
public String getBidang() {
return bidang_id;
}
public void setBidang(String bidang_id) {
this.bidang_id = bidang_id;
}
public String getJabatan() {
return jabatan;
}
public void setJabatan(String jabatan) {
this.jabatan = jabatan;
}
public String getRole() {
return role_id;
}
public void setRole(String role_id) {
this.role_id = role_id;
}
public Boolean getIsactive() {
return is_active;
}
public void setIsactive(Boolean is_active) {
this.is_active = is_active;
}
}

View File

@ -0,0 +1,49 @@
package com.iconplus.smartproc.exception;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.http.HttpStatus;
import java.util.Map;
@Setter
@Getter
@ToString
public class BaseException extends RuntimeException {
protected HttpStatus httpStatus;
protected String errorCode;
protected String errorDesc;
protected String errorMessage;
protected String rootCause;
protected Map<String, String> errorMessageMap;
public BaseException(HttpStatus httpStatus, String errorCode, String rootCause, String errorDesc, String errorMessage) {
super(rootCause);
this.httpStatus = httpStatus;
this.errorCode = errorCode;
this.errorDesc = errorDesc;
this.errorMessage = errorMessage;
}
public BaseException(HttpStatus httpStatus, String errorCode, String rootCause) {
super(rootCause);
this.httpStatus = httpStatus;
this.errorCode = errorCode;
}
public BaseException(String errorCode, String rootCause) {
super(rootCause);
this.errorCode = errorCode;
}
public BaseException(HttpStatus httpStatus, String errorCode, String rootCause, Map<String, String> errorMessageMap){
super(rootCause);
this.httpStatus = httpStatus;
this.errorCode = errorCode;
this.errorMessageMap = errorMessageMap;
}
}

View File

@ -0,0 +1,47 @@
package com.iconplus.smartproc.exception;
import org.springframework.http.HttpStatus;
import java.util.Map;
public class BusinessException extends BaseException {
public BusinessException(String errorCode, String errorDesc, String errorMessage) {
super(HttpStatus.CONFLICT, errorCode, "", errorDesc, errorMessage);
}
public BusinessException(HttpStatus httpStatus, String errorCode, String errorDesc, String errorMessage) {
super(httpStatus, errorCode, "", errorDesc, errorMessage);
}
public BusinessException(String errorCode) {
super(HttpStatus.CONFLICT, errorCode, "");
}
public BusinessException(HttpStatus httpStatus, String errorCode) {
super(httpStatus, errorCode, "");
}
public BusinessException(String errorCode, Map<String, String> maps) {
super(HttpStatus.CONFLICT, errorCode, "", maps);
}
public BusinessException(HttpStatus httpStatus, String errorCode, Map<String, String> maps) {
super(httpStatus, errorCode, "", maps);
}
public BusinessException(String errorCode, String rootCause) {
super(HttpStatus.CONFLICT, errorCode, rootCause);
}
public BusinessException(HttpStatus httpStatus, String errorCode, String rootCause) {
super(httpStatus, errorCode, rootCause);
}
public BusinessException(String errorCode, String rootCause, Map<String, String> maps) {
super(HttpStatus.CONFLICT, errorCode, rootCause, maps);
}
public BusinessException(HttpStatus httpStatus, String errorCode, String rootCause, Map<String, String> maps) {
super(httpStatus, errorCode, rootCause, maps);
}
}

View File

@ -0,0 +1,115 @@
package com.iconplus.smartproc.exception;
import lombok.extern.log4j.Log4j2;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.runtime.resource.loader.StringResourceLoader;
import org.apache.velocity.runtime.resource.util.StringResourceRepository;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.io.StringWriter;
import java.util.Map;
import static org.apache.velocity.runtime.RuntimeConstants.RESOURCE_LOADER;
@Configuration
@Log4j2
public class ErrorHelper {
public static final String RAW_TEMPLATE = "rawTemplate";
private final VelocityEngine engine;
public ErrorHelper() {
engine = new VelocityEngine();
this.addVelocityProperties();
engine.init();
}
public ResponseEntity<ErrorResponse> throwErrorException(String errorCode, HttpStatus httpStatus) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setCode(errorCode);
errorResponse.setTitle("Kesalahan terjadi");
errorResponse.setMessage("Kesalahan terjadi");
return new ResponseEntity<>(errorResponse, new HttpHeaders(), httpStatus);
}
public ResponseEntity<ErrorResponse> throwErrorExceptionWithHardcodedMsg(String errorCode, HttpStatus httpStatus,
String errorDesc, String errorMsg) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setCode(errorCode);
errorResponse.setTitle(errorDesc);
errorResponse.setMessage(errorMsg);
return new ResponseEntity<>(errorResponse, new HttpHeaders(), httpStatus);
}
public ResponseEntity<ErrorResponse> throwErrorExceptionWithMetadata(String errorCode, HttpStatus httpStatus,
Map<String, String> metadata) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setCode(errorCode);
errorResponse.setTitle("Kesalahan terjadi");
errorResponse.setMessage(transform("Kesalahan terjadi", metadata));
return new ResponseEntity<>(errorResponse, new HttpHeaders(), httpStatus);
}
public ResponseEntity<ErrorResponse> throwErrorExceptionWithMessageAndMetadataWithoutLocalization(HttpStatus httpStatus, String errorCode, String errorTitle, String errorMessage,
Map<String, String> metadata) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setCode(errorCode);
errorResponse.setTitle(errorTitle);
errorResponse.setMessage(transform(errorMessage, metadata));
return new ResponseEntity<>(errorResponse, new HttpHeaders(), httpStatus);
}
private String transform(String rawNotificationTemplate, Map<String, String> parameters) {
VelocityContext context = this.getVelocityContext(rawNotificationTemplate, parameters);
Template template = engine.getTemplate(RAW_TEMPLATE);
StringWriter templateWriter = new StringWriter(rawNotificationTemplate.length());
template.merge(context, templateWriter);
return templateWriter.toString();
}
private VelocityContext getVelocityContext(String rawNotificationTemplate, Map<String, String> parameters) {
StringResourceRepository resourceRepository = (StringResourceRepository) engine
.getApplicationAttribute(StringResourceLoader.REPOSITORY_NAME_DEFAULT);
resourceRepository.putStringResource(RAW_TEMPLATE, rawNotificationTemplate);
return new VelocityContext(parameters);
}
private void addVelocityProperties() {
Velocity.addProperty("string.resource.loader.description", "Velocity StringResource loader");
engine.addProperty(RESOURCE_LOADER, "string");
engine.addProperty("string.resource.loader.repository.static", "false");
engine.addProperty("string.resource.loader.class",
"org.apache.velocity.runtime.resource.loader.StringResourceLoader");
engine.addProperty("string.resource.loader.repository.class",
"org.apache.velocity.runtime.resource.util.StringResourceRepositoryImpl");
engine.setProperty("runtime.log.logsystem.class", "org.apache.velocity.runtime.log.NullLogChute");
}
public ResponseEntity<ErrorResponse> throwErrorExceptionWithMessage(HttpStatus httpStatus, String errorCode, String errorTitle, String errorMessage) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setCode(errorCode);
errorResponse.setTitle(errorTitle);
errorResponse.setMessage(errorMessage);
return new ResponseEntity<>(errorResponse, new HttpHeaders(), httpStatus);
}
}

View File

@ -0,0 +1,16 @@
package com.iconplus.smartproc.exception;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@NoArgsConstructor
@AllArgsConstructor
@Data
public class ErrorResponse implements Serializable {
private String code;
private String title;
private String message;
}

View File

@ -0,0 +1,102 @@
package com.iconplus.smartproc.exception;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.client.HttpServerErrorException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeoutException;
@Log4j2
@ControllerAdvice
public class GlobalExceptionHandler {
private ErrorHelper errorHelper;
public GlobalExceptionHandler(ErrorHelper errorHelper) {
this.errorHelper = errorHelper;
}
private Boolean isError = false;
private static final String DEFAULT_ERROR_CODE = "80000";
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> renderDefaultResponse(Exception ex) {
log.error("Exception occurred: ", ex);
return errorHelper.throwErrorException(DEFAULT_ERROR_CODE, HttpStatus.INTERNAL_SERVER_ERROR);
}
@ExceptionHandler(BusinessException.class)
public ResponseEntity<ErrorResponse> renderBusinessErrorResponse(BusinessException exception) {
log.error("BusinessException occurred: ", exception);
if (Objects.nonNull(exception.getErrorMessageMap())) {
return getErrorResponseResponseEntity(exception.getErrorDesc(), exception.getErrorMessage(), exception.getErrorCode(), exception.getHttpStatus(), exception.getErrorMessageMap());
}
return getErrorResponseResponseEntity(exception.getErrorDesc(), exception.getErrorMessage(), exception.getErrorCode(), exception.getHttpStatus(), null);
}
@ExceptionHandler(TechnicalException.class)
public ResponseEntity<ErrorResponse> renderTechnicalErrorResponse(TechnicalException exception) {
log.error("TechnicalException occurred: ", exception);
return getErrorResponseResponseEntity(exception.getErrorDesc(), exception.getErrorMessage(), exception.getErrorCode(), exception.getHttpStatus(), null);
}
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<ErrorResponse> renderMethodArgumentErrorResponse(MethodArgumentNotValidException exception) {
log.error("MethodArgumentNotValidException occurred: ", exception);
List<String> errors = new ArrayList<String>();
for (FieldError error : exception.getBindingResult().getFieldErrors()) {
errors.add(error.getField().concat(":").concat(error.getDefaultMessage()));
}
return errorHelper.throwErrorExceptionWithMessage(HttpStatus.BAD_REQUEST, "80400", "Request Validation Error", errors.toString());
}
@ExceptionHandler(HttpServerErrorException.class)
public ResponseEntity<ErrorResponse> renderHttpServerErrorResponse(HttpServerErrorException exception) {
log.error("HttpServerErrorException occurred: ", exception);
return errorHelper.throwErrorException(DEFAULT_ERROR_CODE, HttpStatus.INTERNAL_SERVER_ERROR);
}
@ExceptionHandler(TimeoutException.class)
public ResponseEntity<ErrorResponse> renderTimeoutResponse(TimeoutException exception) {
log.error("TimeoutException occurred: ", exception);
return errorHelper.throwErrorException("80001", HttpStatus.INTERNAL_SERVER_ERROR);
}
private ResponseEntity<ErrorResponse> getErrorResponseResponseEntity(String errorDesc, String errorMessage,
String errorCode, HttpStatus httpStatus,
Map<String, String> metadata) {
if (StringUtils.isNotBlank(errorDesc) && StringUtils.isNotBlank(errorMessage)) {
return errorHelper.throwErrorExceptionWithMessageAndMetadataWithoutLocalization(httpStatus, errorCode, errorDesc, errorMessage, metadata);
} else {
if (Objects.nonNull(metadata)) {
return errorHelper.throwErrorExceptionWithMetadata(errorCode, httpStatus, metadata);
}
return errorHelper.throwErrorException(errorCode, httpStatus);
}
}
public Boolean isError() {
return isError;
}
}

View File

@ -0,0 +1,69 @@
package com.iconplus.smartproc.exception;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver;
import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@Log4j2
@Component
public class ResponseExceptionResolver extends AbstractHandlerExceptionResolver {
private static final String DEFAULT_ERROR_CODE = "80000";
public ResponseExceptionResolver() {}
@SneakyThrows
@Override
protected ModelAndView doResolveException(
HttpServletRequest request,
HttpServletResponse response,
Object handler,
Exception ex
) {
return handleException(request, response, ex);
}
private ModelAndView handleException(
HttpServletRequest request,
HttpServletResponse response,
Exception exception
) {
if (ObjectUtils.isNotEmpty(response) && HttpStatus.UNAUTHORIZED.value() == response.getStatus()
&& ObjectUtils.isNotEmpty(exception) && exception instanceof BusinessException
) {
BusinessException businessException = (BusinessException) exception;
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setCode(businessException.getErrorCode());
errorResponse.setTitle(businessException.getErrorDesc());
errorResponse.setMessage(businessException.getErrorMessage());
log.info("Error Response Exception : {}", errorResponse);
return new ModelAndView(new MappingJackson2JsonView(), this.getErrorResponse(errorResponse));
}
response.setHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE);
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setCode(DEFAULT_ERROR_CODE);
errorResponse.setTitle("Kesalahan terjadi");
errorResponse.setMessage("Kesalahan terjadi");
return new ModelAndView(new MappingJackson2JsonView(), this.getErrorResponse(errorResponse));
}
private Map<String, String> getErrorResponse(ErrorResponse errorResponse) {
return new ObjectMapper().convertValue(errorResponse, new TypeReference<Map<String, String>>() {
});
}
}

View File

@ -0,0 +1,40 @@
package com.iconplus.smartproc.exception;
import org.springframework.http.HttpStatus;
import java.util.Map;
public class TechnicalException extends BaseException {
public TechnicalException(String errorCode, String errorDesc, String errorMessage) {
super(HttpStatus.INTERNAL_SERVER_ERROR, errorCode, "", errorDesc, errorMessage);
}
public TechnicalException(HttpStatus httpStatus, String errorCode, String errorDesc, String errorMessage){
super(httpStatus, errorCode, "", errorDesc, errorMessage);
}
public TechnicalException(String errorCode){
super(HttpStatus.INTERNAL_SERVER_ERROR, errorCode, "");
}
public TechnicalException(HttpStatus httpStatus, String errorCode){
super(httpStatus, errorCode, "");
}
public TechnicalException(String errorCode, String rootCause){
super(HttpStatus.INTERNAL_SERVER_ERROR, errorCode, rootCause);
}
public TechnicalException(HttpStatus httpStatus, String errorCode, String rootCause) {
super(httpStatus, errorCode, rootCause);
}
public TechnicalException(String errorCode, String rootCause, Map<String, String> maps) {
super(HttpStatus.CONFLICT, errorCode, rootCause, maps);
}
public TechnicalException(HttpStatus httpStatus, String errorCode, String rootCause, Map<String, String> maps) {
super(httpStatus, errorCode, rootCause, maps);
}
}

View File

@ -0,0 +1,30 @@
package com.iconplus.smartproc.helper.base;
import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import javax.persistence.Column;
import javax.persistence.MappedSuperclass;
import java.io.Serializable;
import java.sql.Timestamp;
@Data
@MappedSuperclass
public class BaseEntity implements Serializable {
@Column(name = "created_by", length = 50)
private String createdBy;
@Column(name = "created_time", nullable = false, updatable=false)
@CreationTimestamp
private Timestamp createdTime;
@Column(name = "updated_by", length = 50)
private String updatedBy;
@Column(name = "updated_time")
@UpdateTimestamp
private Timestamp updatedTime;
}

View File

@ -0,0 +1,10 @@
package com.iconplus.smartproc.helper.base;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.io.Serializable;
@JsonIgnoreProperties(ignoreUnknown = true)
public interface BaseInterfaceRequest extends Serializable {
}

View File

@ -0,0 +1,12 @@
package com.iconplus.smartproc.helper.base;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public interface BaseInterfaceResponse extends Serializable {
}

View File

@ -0,0 +1,18 @@
package com.iconplus.smartproc.helper.base;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class BasePaginationRequest extends BaseRequest{
private Integer pageSize;
private Integer pageNumber;
private String sortBy;
private String sortType;
}

View File

@ -0,0 +1,14 @@
package com.iconplus.smartproc.helper.base;
import com.iconplus.smartproc.helper.model.Pagination;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class BasePaginationResponse extends BaseResponse{
private Pagination pagination;
}

View File

@ -0,0 +1,10 @@
package com.iconplus.smartproc.helper.base;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.io.Serializable;
@JsonIgnoreProperties(ignoreUnknown = true)
public class BaseRequest implements Serializable {
}

View File

@ -0,0 +1,12 @@
package com.iconplus.smartproc.helper.base;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class BaseResponse implements Serializable {
}

View File

@ -0,0 +1,7 @@
package com.iconplus.smartproc.helper.model;
import com.iconplus.smartproc.helper.base.BaseRequest;
public class EmptyRequest extends BaseRequest {
}

View File

@ -0,0 +1,9 @@
package com.iconplus.smartproc.helper.model;
import brave.internal.Nullable;
import com.iconplus.smartproc.helper.base.BaseResponse;
@Nullable
public class EmptyResponse extends BaseResponse {
}

View File

@ -0,0 +1,22 @@
package com.iconplus.smartproc.helper.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Pagination implements Serializable {
private Integer pageSize;
private Integer currentPage;
private Integer totalPages;
private Long totalRecords;
private Boolean isFirstPage;
private Boolean isLastPage;
}

View File

@ -0,0 +1,8 @@
package com.iconplus.smartproc.helper.service;
import com.iconplus.smartproc.helper.base.BaseInterfaceRequest;
import com.iconplus.smartproc.helper.base.BaseInterfaceResponse;
public interface BaseInterfaceService<T extends BaseInterfaceRequest, V extends BaseInterfaceResponse> {
V execute(T input);
}

View File

@ -0,0 +1,30 @@
package com.iconplus.smartproc.helper.service;
import com.iconplus.smartproc.helper.base.BasePaginationRequest;
import com.iconplus.smartproc.helper.base.BasePaginationResponse;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
@Data
@AllArgsConstructor
@NoArgsConstructor
public abstract class BasePaginationService<T extends BasePaginationRequest, V extends BasePaginationResponse> implements BaseService<T, V>{
@Value("${default.page.size}")
private Integer pageSize;
@Value("${default.page.number}")
private Integer pageNumber;
@Value("${default.page.sortBy}")
private String sortBy;
@Value("${default.page.sortType}")
private String sortType;
@Value("${default.page.maxPageSize}")
private Integer maxPageSize;
}

View File

@ -0,0 +1,9 @@
package com.iconplus.smartproc.helper.service;
import com.iconplus.smartproc.helper.base.BaseRequest;
import com.iconplus.smartproc.helper.base.BaseResponse;
public interface BaseService<T extends BaseRequest, V extends BaseResponse> {
V execute(T input);
}

View File

@ -0,0 +1,38 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Type;
import javax.persistence.*;
@Entity
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "jenis_anggaran")
public class JenisAnggaran extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "jenis_anggaran")
private String jenisAnggaran;
@Column(name = "keterangan")
private String keterangan;
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "deleted")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
}

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "jenis_kontrak")
@Data
@Builder
public class JenisKontrak extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "jenis_kontrak")
private String jenisKontrak;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "jenis_pengadaan")
@Data
@Builder
public class JenisPengadaan extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "jenis_anggaran")
private String jenisPengadaan;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "lokasi")
@Data
@Builder
public class Lokasi extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "lokasi")
private String lokasi;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "metode_pengadaan")
@Data
@Builder
public class MetodePengadaan extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "metode_pengadaan")
private String metodePengadaan;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,26 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "metode_penyampaian")
@Data
@Builder
public class MetodePenyampaian extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "metode_penyampaian")
private String metodePenyampaian;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,28 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "roles")
@Data
@Builder
public class Roles extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "role")
private String role;
@Column(name = "keterangan")
private String keterangan;
@Column(name = "is_active")
private Boolean isactive;
}

View File

@ -0,0 +1,20 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "strategi_pengadaan")
@Data
@Builder
public class StrategiPengadaan extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String strategipengadaan;
private String keterangan;
}

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "sumberdana")
@Data
@Builder
public class SumberDana extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "sumber_dana")
private String sumberDana;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "supply_positioning_matrix")
@Data
@Builder
public class SupplyPositioningMatrix extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "supply_positioning_matrix")
private String supplypositioningmatrix;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,25 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import javax.persistence.*;
@Entity
@Table(name = "unit_inisiator")
@Data
@Builder
public class UnitInisiator extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "unit_inisiator")
private String unitInisiator;
@Column(name = "keterangan")
private String keterangan;
}

View File

@ -0,0 +1,51 @@
package com.iconplus.smartproc.model.entity;
import com.iconplus.smartproc.helper.base.BaseEntity;
import lombok.Builder;
import lombok.Data;
import org.hibernate.annotations.Type;
import javax.persistence.*;
@Entity
@Table(name = "users")
@Data
@Builder
public class Users extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "username")
private String username;
@Column(name = "nama")
private String nama;
@Column(name = "email")
private String email;
@Column(name = "password")
private String password;
@Column(name = "instansi_id")
private String instansiId;
@Column(name = "bidang_id")
private String bidangId;
@Column(name = "jabatan")
private String jabatan;
@Column(name = "role_id")
private Long roleId;
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "deleted")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
}

View File

@ -0,0 +1,16 @@
package com.iconplus.smartproc.model.projection;
public interface JenisAnggaranView {
Long getId();
String getJenisAnggaran();
String getKeterangan();
Boolean getIsActive();
Boolean getDeleted();
void setId(Long id);
void setJenisAnggaran(String jenisAnggaran);
void setKeterangan(String keterangan);
void setIsActive(Boolean isActive);
void setDeleted(Boolean deleted);
}

View File

@ -0,0 +1,19 @@
package com.iconplus.smartproc.model.request;
import com.iconplus.smartproc.helper.base.BaseRequest;
import lombok.Builder;
import lombok.Data;
import org.springframework.data.domain.Pageable;
@Data
@Builder
public class JenisAnggaranRequest extends BaseRequest {
private Long id;
private String jenisAnggaran;
private String keterangan;
private Boolean isActive;
private Boolean deleted;
private String search;
private transient Pageable pageable;
}

View File

@ -0,0 +1,20 @@
package com.iconplus.smartproc.model.response;
import com.iconplus.smartproc.helper.base.BaseResponse;
import com.iconplus.smartproc.helper.model.Pagination;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GetListJenisAnggaranResponse extends BaseResponse {
private List<JenisAnggaranResponse> listJenisAnggaranResponse;
private Pagination pagination;
}

View File

@ -0,0 +1,21 @@
package com.iconplus.smartproc.model.response;
import com.iconplus.smartproc.helper.base.BaseResponse;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class JenisAnggaranResponse extends BaseResponse {
private long id;
private String jenisAnggaran;
private String keterangan;
private Boolean isActive;
private Boolean deleted;
}

View File

@ -0,0 +1,32 @@
package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.JenisAnggaran;
import com.iconplus.smartproc.model.projection.JenisAnggaranView;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface JenisAnggaranRepository extends JpaRepository<JenisAnggaran, Long> {
@Query(value = "SELECT ja.id as id, " +
"ja.jenisAnggaran as jenisAnggaran, " +
"ja.keterangan as keterangan, " +
"ja.isActive as isActive, " +
"ja.deleted as deleted " +
"FROM JenisAnggaran ja " +
"WHERE ja.deleted = false " +
"AND (:search is null " +
"or (UPPER(ja.jenisAnggaran) like :search OR UPPER(ja.keterangan) like :search)) " +
"ORDER BY ja.id")
Page<JenisAnggaranView> getAllJenisAnggaran(String search, Pageable pageable);
Optional<JenisAnggaran> findByIdAndDeletedFalse(Long id);
Optional<JenisAnggaran> findByJenisAnggaranAndDeletedFalse(String jenisAnggaran);
}

View File

@ -1,10 +1,10 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Jenisanggaran; import com.iconplus.smartproc.model.entity.JenisKontrak;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface JenisanggaranRepository extends JpaRepository<Jenisanggaran, Long> { public interface JenisKontrakRepository extends JpaRepository<JenisKontrak, Long> {
} }

View File

@ -1,10 +1,10 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Jenispengadaan; import com.iconplus.smartproc.model.entity.JenisPengadaan;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface JenispengadaanRepository extends JpaRepository<Jenispengadaan, Long> { public interface JenisPengadaanRepository extends JpaRepository<JenisPengadaan, Long> {
} }

View File

@ -1,6 +1,6 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Lokasi; import com.iconplus.smartproc.model.entity.Lokasi;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;

View File

@ -1,10 +1,10 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Metodepenyampaian; import com.iconplus.smartproc.model.entity.MetodePengadaan;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface MetodepenyampaianRepository extends JpaRepository<Metodepenyampaian, Long> { public interface MetodePengadaanRepository extends JpaRepository<MetodePengadaan, Long> {
} }

View File

@ -1,10 +1,10 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Metodepengadaan; import com.iconplus.smartproc.model.entity.MetodePenyampaian;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface MetodepengadaanRepository extends JpaRepository<Metodepengadaan, Long> { public interface MetodePenyampaianRepository extends JpaRepository<MetodePenyampaian, Long> {
} }

View File

@ -1,6 +1,6 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Roles; import com.iconplus.smartproc.model.entity.Roles;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;

View File

@ -0,0 +1,10 @@
package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.StrategiPengadaan;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface StrategiPengadaanRepository extends JpaRepository<StrategiPengadaan, Long> {
}

View File

@ -1,10 +0,0 @@
package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Strategipengadaan;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface StrategipengadaanRepository extends JpaRepository<Strategipengadaan, Long> {
}

View File

@ -1,10 +1,10 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Jeniskontrak; import com.iconplus.smartproc.model.entity.SumberDana;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface JeniskontrakRepository extends JpaRepository<Jeniskontrak, Long> { public interface SumberDanaRepository extends JpaRepository<SumberDana, Long> {
} }

View File

@ -0,0 +1,10 @@
package com.iconplus.smartproc.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.iconplus.smartproc.model.entity.SupplyPositioningMatrix;
@Repository
public interface SupplyPositioningMatrixRepository extends JpaRepository<SupplyPositioningMatrix, Long> {
}

View File

@ -1,10 +0,0 @@
package com.iconplus.smartproc.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.iconplus.smartproc.entity.Supplypositioningmatrix;
@Repository
public interface SupplypositioningmatrixRepository extends JpaRepository<Supplypositioningmatrix, Long> {
}

View File

@ -1,10 +1,10 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Sumberdana;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.iconplus.smartproc.model.entity.UnitInisiator;
@Repository @Repository
public interface SumberdanaRepository extends JpaRepository<Sumberdana, Long> { public interface UnitInisiatorRepository extends JpaRepository<UnitInisiator, Long> {
} }

View File

@ -1,10 +0,0 @@
package com.iconplus.smartproc.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import com.iconplus.smartproc.entity.Unitinisiator;
@Repository
public interface UnitinisiatorRepository extends JpaRepository<Unitinisiator, Long> {
}

View File

@ -1,6 +1,6 @@
package com.iconplus.smartproc.repository; package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.entity.Users; import com.iconplus.smartproc.model.entity.Users;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;

View File

@ -0,0 +1,39 @@
package com.iconplus.smartproc.service.jenisanggaran;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.JenisAnggaran;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class DeleteJenisAnggaranService implements BaseService<JenisAnggaranRequest, EmptyResponse> {
private JenisAnggaranRepository jenisAnggaranRepository;
public DeleteJenisAnggaranService(JenisAnggaranRepository jenisAnggaranRepository) {
this.jenisAnggaranRepository = jenisAnggaranRepository;
}
@Override
public EmptyResponse execute(JenisAnggaranRequest input) {
var jenisAnggaran = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, input.getId())));
jenisAnggaran.setDeleted(true);
jenisAnggaranRepository.save(jenisAnggaran);
log.info("success delete jenis anggaran id {}", jenisAnggaran.getDeleted());
return new EmptyResponse();
}
}

View File

@ -0,0 +1,45 @@
package com.iconplus.smartproc.service.jenisanggaran;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.model.response.JenisAnggaranResponse;
import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
@Service
public class GetJenisAnggaranByIdService implements BaseService<JenisAnggaranRequest, JenisAnggaranResponse> {
private final JenisAnggaranRepository jenisAnggaranRepository;
public GetJenisAnggaranByIdService(JenisAnggaranRepository jenisAnggaranRepository) {
this.jenisAnggaranRepository = jenisAnggaranRepository;
}
@Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
JenisAnggaranResponse jenisAnggaranResponse = new JenisAnggaranResponse();
var jenisAnggaranView = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId());
if (jenisAnggaranView.isEmpty()) {
throw new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, input.getId()));
}
jenisAnggaranResponse.setJenisAnggaran(jenisAnggaranView.get().getJenisAnggaran());
jenisAnggaranResponse.setKeterangan(jenisAnggaranView.get().getKeterangan());
jenisAnggaranResponse.setIsActive(jenisAnggaranView.get().getIsActive());
jenisAnggaranResponse.setDeleted(jenisAnggaranView.get().getDeleted());
return JenisAnggaranResponse.builder()
.id(jenisAnggaranView.get().getId())
.jenisAnggaran(jenisAnggaranView.get().getJenisAnggaran())
.keterangan(jenisAnggaranView.get().getKeterangan())
.isActive(jenisAnggaranView.get().getIsActive())
.deleted(jenisAnggaranView.get().getDeleted())
.build();
}
}

View File

@ -0,0 +1,60 @@
package com.iconplus.smartproc.service.jenisanggaran;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.JenisAnggaranView;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.model.response.GetListJenisAnggaranResponse;
import com.iconplus.smartproc.model.response.JenisAnggaranResponse;
import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListJenisAnggaranService implements BaseService<JenisAnggaranRequest, GetListJenisAnggaranResponse> {
private JenisAnggaranRepository jenisAnggaranRepository;
public GetListJenisAnggaranService(JenisAnggaranRepository jenisAnggaranRepository) {
this.jenisAnggaranRepository = jenisAnggaranRepository;
}
@Override
public GetListJenisAnggaranResponse execute(JenisAnggaranRequest input) {
validateRequest(input);
List<JenisAnggaranResponse> jenisAnggaranResponseList = new ArrayList<>();
var jenisAnggaranViews = jenisAnggaranRepository.getAllJenisAnggaran(input.getSearch(), input.getPageable());
for (JenisAnggaranView jenisAnggaranView : jenisAnggaranViews) {
JenisAnggaranResponse jenisAnggaranResponse = JenisAnggaranResponse.builder()
.id(jenisAnggaranView.getId())
.jenisAnggaran(jenisAnggaranView.getJenisAnggaran())
.keterangan(jenisAnggaranView.getKeterangan())
.isActive(jenisAnggaranView.getIsActive())
.deleted(jenisAnggaranView.getDeleted())
.build();
jenisAnggaranResponseList.add(jenisAnggaranResponse);
}
return GetListJenisAnggaranResponse.builder()
.listJenisAnggaranResponse(jenisAnggaranResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(jenisAnggaranViews.getTotalPages())
.totalRecords(jenisAnggaranViews.getTotalElements())
.isFirstPage(jenisAnggaranViews.isFirst())
.isLastPage(jenisAnggaranViews.isLast())
.build())
.build();
}
private void validateRequest(JenisAnggaranRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@ -0,0 +1,53 @@
package com.iconplus.smartproc.service.jenisanggaran;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.JenisAnggaran;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.model.response.JenisAnggaranResponse;
import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
@Service
@Slf4j
public class PostCreateJenisAnggaranService implements BaseService<JenisAnggaranRequest, JenisAnggaranResponse> {
private final JenisAnggaranRepository jenisAnggaranRepository;
public PostCreateJenisAnggaranService(JenisAnggaranRepository jenisAnggaranRepository) {
this.jenisAnggaranRepository = jenisAnggaranRepository;
}
@Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
var existJenisAnggaran = jenisAnggaranRepository.findByJenisAnggaranAndDeletedFalse(input.getJenisAnggaran());
if (existJenisAnggaran.isPresent()) {
throw new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10002,
Constants.ERR_TTL_10002,
String.format(Constants.ERR_MSG_10002, existJenisAnggaran.get().getId()));
}
JenisAnggaran jenisAnggaran = JenisAnggaran.builder()
.jenisAnggaran(input.getJenisAnggaran())
.keterangan(input.getKeterangan())
.isActive(input.getIsActive())
.deleted(false)
.build();
jenisAnggaran.setCreatedTime(new Timestamp(System.currentTimeMillis()));
var result = jenisAnggaranRepository.save(jenisAnggaran);
log.info("success insert jenis anggaran id : {}", result.getId());
return JenisAnggaranResponse.builder()
.id(result.getId())
.build();
}
}

View File

@ -0,0 +1,45 @@
package com.iconplus.smartproc.service.jenisanggaran;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.JenisAnggaranRequest;
import com.iconplus.smartproc.model.response.JenisAnggaranResponse;
import com.iconplus.smartproc.repository.JenisAnggaranRepository;
import com.iconplus.smartproc.util.Constants;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
@Service
@Slf4j
public class PutUpdateJenisAnggaranService implements BaseService<JenisAnggaranRequest, JenisAnggaranResponse> {
private JenisAnggaranRepository jenisAnggaranRepository;
public PutUpdateJenisAnggaranService(JenisAnggaranRepository jenisAnggaranRepository) {
this.jenisAnggaranRepository = jenisAnggaranRepository;
}
@Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
var jenisAnggaran = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, input.getId())));
jenisAnggaran.setJenisAnggaran(input.getJenisAnggaran());
jenisAnggaran.setKeterangan(input.getKeterangan());
jenisAnggaran.setDeleted(BooleanUtils.isTrue(input.getDeleted()));
jenisAnggaran.setUpdatedTime(new Timestamp(System.currentTimeMillis()));
jenisAnggaranRepository.save(jenisAnggaran);
log.info("Success edit jenis anggaran id {}", jenisAnggaran.getId());
return JenisAnggaranResponse.builder()
.id(jenisAnggaran.getId())
.build();
}
}

View File

@ -0,0 +1,15 @@
package com.iconplus.smartproc.util;
public class Constants {
private Constants() {
}
public static final String ERR_CODE_10001 = "10001";
public static final String ERR_TTL_10001 = "Data tidak ditemukan";
public static final String ERR_MSG_10001 = "Jenis Anggaran dengan id : %s tidak ditemukan";
public static final String ERR_CODE_10002 = "10002";
public static final String ERR_TTL_10002 = "Data tersedia";
public static final String ERR_MSG_10002 = "Jenis Anggaran dengan id : %s sudah tersedia";
}

View File

@ -1,6 +1,6 @@
spring.datasource.url=jdbc:postgresql://localhost:5432/smartproc spring.datasource.url=jdbc:postgresql://localhost:5432/smartproc
spring.datasource.username=postgres spring.datasource.username=postgres
spring.datasource.password=postgres spring.datasource.password=postgre
spring.jpa.show-sql=true spring.jpa.show-sql=true
## Hibernate Properties ## Hibernate Properties