refactor v2

This commit is contained in:
dirgantarasiahaan 2023-05-24 09:23:51 +07:00
parent ed88afcdde
commit b49a2425c1
52 changed files with 809 additions and 172 deletions

View File

@ -1,66 +1,73 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.repository.RolesRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.GetRolesResponse;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.service.roles.*;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
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/roles")
public class RolesController {
@Autowired
private RolesRepository rolesRepository;
//get all data
private final GetRolesService getRolesService;
private final PostCreateRoleService postCreateRoleService;
private final GetRoleByIdService getRoleByIdService;
private final PutUpdateRoleService putUpdateRoleService;
private final DeleteRoleService deleteRoleService;
public RolesController(GetRolesService getRolesService,
PostCreateRoleService postCreateRoleService,
GetRoleByIdService getRoleByIdService,
PutUpdateRoleService putUpdateRoleService,
DeleteRoleService deleteRoleService) {
this.getRolesService = getRolesService;
this.postCreateRoleService = postCreateRoleService;
this.getRoleByIdService = getRoleByIdService;
this.putUpdateRoleService = putUpdateRoleService;
this.deleteRoleService = deleteRoleService;
}
@GetMapping
public List<Roles> getAllRoless(){
return rolesRepository.findAll();
public GetRolesResponse getRoles(@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);
RolesRequest rolesRequest = RolesRequest.builder()
.search(search)
.pageable(pageable)
.build();
return getRolesService.execute(rolesRequest);
}
// create
@PostMapping
public Roles createRoles(@RequestBody Roles roles) {
return rolesRepository.save(roles);
public RolesResponse createRoles(@RequestBody RolesRequest rolesRequest) {
return postCreateRoleService.execute(rolesRequest);
}
// get roles by id rest api
@GetMapping("/{id}")
public ResponseEntity<Roles> getRolesById(@PathVariable Long id) {
Roles roles = rolesRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Roles not exist with id :" + id));
return ResponseEntity.ok(roles);
public RolesResponse getRolesById(@PathVariable Long id) {
return getRoleByIdService.execute(RolesRequest.builder()
.id(id)
.build());
}
// update roles rest api
@PutMapping("/{id}")
public ResponseEntity<Roles> updateRoles(@PathVariable Long id, @RequestBody Roles rolesDetails){
Roles roles = rolesRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Roles not exist with id :" + id));
roles.setRole(rolesDetails.getRole());
roles.setKeterangan(rolesDetails.getKeterangan());
roles.setIsActive(rolesDetails.getIsActive());
Roles updatedRoles = rolesRepository.save(roles);
return ResponseEntity.ok(updatedRoles);
public RolesResponse updateRoles(@PathVariable Long id, @RequestBody RolesRequest rolesRequest){
rolesRequest.setId(id);
return putUpdateRoleService.execute(rolesRequest);
}
// delete roles rest api
@DeleteMapping("/{id}")
public ResponseEntity<Map<String, Boolean>> deleteRoles(@PathVariable Long id){
Roles roles = rolesRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("Supposmatrix not exist with id :" + id));
rolesRepository.delete(roles);
Map<String, Boolean> response = new HashMap<>();
response.put("deleted", Boolean.TRUE);
return ResponseEntity.ok(response);
public EmptyResponse deleteRoles(@PathVariable Long id){
return deleteRoleService.execute(RolesRequest.builder()
.id(id)
.build());
}
}

View File

@ -2,8 +2,15 @@ package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.exception.ResourceNotFoundException;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.GetRolesResponse;
import com.iconplus.smartproc.model.response.GetUsersResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import com.iconplus.smartproc.service.manajemenuser.GetListUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@ -18,10 +25,36 @@ public class UsersController {
@Autowired
private UsersRepository usersRepository;
//get all data
private final GetListUserService getListUserService;
public UsersController(GetListUserService getListUserService) {
this.getListUserService = getListUserService;
}
@GetMapping
public List<Users> getAllUserss(){
return usersRepository.findAll();
public GetUsersResponse getUsers(@RequestParam(name = "search", required = false) String search,
@RequestParam(name = "instansi", required = false) String instansi,
@RequestParam(name = "bidang", required = false) String bidang,
@RequestParam(name = "nama", required = false) String nama,
@RequestParam(name = "jabatan", required = false) String jabatan,
@RequestParam(name = "role", required = false) String role,
@RequestParam(name = "email", required = false) String email,
@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){
Pageable pageable = PageRequest.of((page - 1), size);
UsersRequest usersRequest = UsersRequest.builder()
.search(search)
.instansi(instansi)
.bidang(bidang)
.nama(nama)
.jabatan(jabatan)
.role(role)
.email(email)
.pageable(pageable)
.build();
return getListUserService.execute(usersRequest);
}
// create
@ -45,7 +78,7 @@ public class UsersController {
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
users.setUsername(usersDetails.getUsername());
users.setFullname(usersDetails.getFullname());
users.setNama(usersDetails.getNama());
users.setEmail(usersDetails.getEmail());
users.setPassword(usersDetails.getPassword());
// users.setInstansi(usersDetails.getInstansi());

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.*;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "bidang")
public class Bidang extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "bidang")
private String bidang;
@Column(name = "keterangan")
private String keterangan;
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

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.*;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "instansi")
public class Instansi extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "instansi")
private String instansi;
@Column(name = "keterangan")
private String keterangan;
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -19,7 +19,7 @@ public class JenisAnggaran extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private Long id;
@Column(name = "jenis_anggaran")
private String jenisAnggaran;
@ -27,8 +27,12 @@ public class JenisAnggaran extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,11 +13,13 @@ import javax.persistence.*;
@Table(name = "jenis_kontrak")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class JenisKontrak extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private Long id;
@Column(name = "jenis_kontrak")
private String jenisKontrak;
@ -23,8 +27,12 @@ public class JenisKontrak extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "jenis_pengadaan")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class JenisPengadaan extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class JenisPengadaan extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,11 +13,13 @@ import javax.persistence.*;
@Table(name = "lokasi")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Lokasi extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private Long id;
@Column(name = "lokasi")
private String lokasi;
@ -23,8 +27,12 @@ public class Lokasi extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "metode_pengadaan")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MetodePengadaan extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,8 @@ public class MetodePengadaan extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isDelete;
}

View File

@ -2,8 +2,10 @@ 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.*;
@ -12,6 +14,8 @@ import javax.persistence.*;
@Table(name = "metode_penyampaian")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MetodePenyampaian extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -24,8 +28,12 @@ public class MetodePenyampaian extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,21 +1,25 @@
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
@Table(name = "roles")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "roles")
public class Roles extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private Long id;
@Column(name = "role")
private String role;
@ -27,8 +31,8 @@ public class Roles extends BaseEntity {
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "deleted")
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "strategi_pengadaan")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class StrategiPengadaan extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class StrategiPengadaan extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "sumber_dana")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SumberDana extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class SumberDana extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "supply_positioning_matrix")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SupplyPositioningMatrix extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class SupplyPositioningMatrix extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -45,7 +45,7 @@ public class TokenManagement extends BaseEntity {
@Column(name = "expired_time")
private Timestamp expiredTime;
@Column(name = "deleted")
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isDelete;
}

View File

@ -1,8 +1,10 @@
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.*;
@ -11,6 +13,8 @@ import javax.persistence.*;
@Table(name = "unit_inisiator")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UnitInisiator extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -23,8 +27,12 @@ public class UnitInisiator extends BaseEntity {
@Column(name = "keterangan")
private String keterangan;
@Column(name = "deleted")
@Column(name = "is_active")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isActive;
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isDelete;
}

View File

@ -1,27 +1,31 @@
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
@Table(name = "users")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "users")
public class Users extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
private Long id;
@Column(name = "username")
private String username;
@Column(name = "fullname")
private String fullname;
@Column(name = "nama")
private String nama;
@Column(name = "email")
private String email;
@ -30,10 +34,10 @@ public class Users extends BaseEntity {
private String password;
@Column(name = "instansi_id")
private String instansiId;
private Long instansiId;
@Column(name = "bidang_id")
private String bidangId;
private Long bidangId;
@Column(name = "jabatan")
private String jabatan;
@ -45,7 +49,7 @@ public class Users extends BaseEntity {
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean isActive;
@Column(name = "deleted")
@Column(name = "is_delete")
@Type(type = "org.hibernate.type.NumericBooleanType")
private Boolean deleted;
private Boolean isDelete;
}

View File

@ -5,10 +5,12 @@ public interface JenisAnggaranView {
Long getId();
String getJenisAnggaran();
String getKeterangan();
Boolean getDeleted();
String getIsActive();
Boolean getIsDelete();
void setId(Long id);
void setJenisAnggaran(String jenisAnggaran);
void setKeterangan(String keterangan);
void setDeleted(Boolean deleted);
void setIsActive(Boolean isActive);
void setIsDelete(Boolean isDelete);
}

View File

@ -0,0 +1,16 @@
package com.iconplus.smartproc.model.projection;
public interface RolesView {
Long getId();
String getRole();
String getKeterangan();
Boolean getIsActive();
Boolean getIsDelete();
void setId(Long id);
void setRole(String role);
void setKeterangan(String keterangan);
void setIsActive(Boolean isActive);
void setIsDelete(Boolean isDelete);
}

View File

@ -4,16 +4,32 @@ public interface UserRoleView {
Long getId();
String getUsername();
String getNama();
String getEmail();
Long getInstansiId();
String getInstansi();
Long getBidangId();
String getBidang();
String getJabatan();
Boolean getIsActive();
String getPassword();
Long getRoleId();
String getRole();
Boolean getDeleted();
Boolean getIsDelete();
void setId(Long id);
void setUsername(String username);
void setNama(String nama);
void setEmail(String email);
void setInstatnsi(String instansi);
void setBidang(String bidang);
void setJabatan(String Jabatan);
void setInstatnsiId(Long instansiId);
void setBidangId(Long bidangId);
void setIsActive(Boolean isActive);
void setPassword(String password);
void setRoleId(Long roleId);
void setRole(String role);
void setDeleted(Boolean deleted);
void setIsDelete(Boolean isDelete);
}

View File

@ -13,7 +13,7 @@ public class JenisAnggaranRequest extends BaseRequest {
private String jenisAnggaran;
private String keterangan;
private Boolean isActive;
private Boolean deleted;
private Boolean isDelete;
private String search;
private transient Pageable pageable;
}

View File

@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.domain.Pageable;
@Data
@Builder
@ -16,6 +17,8 @@ public class RolesRequest extends BaseRequest {
private String role;
private String keterangan;
private Boolean isActive;
private Boolean deleted;
private Boolean isDelete;
private String search;
private transient Pageable pageable;
}

View File

@ -0,0 +1,27 @@
package com.iconplus.smartproc.model.request;
import com.iconplus.smartproc.helper.base.BaseRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.domain.Pageable;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UsersRequest extends BaseRequest {
private Long id;
private String username;
private String instansi;
private String bidang;
private String nama;
private String jabatan;
private String role;
private String email;
private Boolean isActive;
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
@AllArgsConstructor
@NoArgsConstructor
public class GetRolesResponse extends BaseResponse {
private List<RolesResponse> data;
private Pagination pagination;
}

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
@AllArgsConstructor
@NoArgsConstructor
public class GetUsersResponse extends BaseResponse {
private List<UsersResponse> data;
private Pagination pagination;
}

View File

@ -16,6 +16,6 @@ public class JenisAnggaranResponse extends BaseResponse {
private String jenisAnggaran;
private String keterangan;
private Boolean isActive;
private Boolean deleted;
private Boolean isDelete;
}

View File

@ -16,6 +16,6 @@ public class RolesResponse extends BaseResponse {
private String role;
private String keterangan;
private Boolean isActive;
private Boolean deleted;
private Boolean isDelete;
}

View File

@ -0,0 +1,23 @@
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
@AllArgsConstructor
@NoArgsConstructor
public class UsersResponse extends BaseResponse {
private Long id;
private String instansi;
private String bidang;
private String nama;
private String jabatan;
private String role;
private String email;
private Boolean isActive;
private Boolean isDelete;
}

View File

@ -16,16 +16,16 @@ public interface JenisAnggaranRepository extends JpaRepository<JenisAnggaran, Lo
@Query(value = "SELECT ja.id as id, " +
"ja.jenisAnggaran as jenisAnggaran, " +
"ja.keterangan as keterangan, " +
"ja.deleted as deleted " +
"ja.isDelete as isDelete " +
"FROM JenisAnggaran ja " +
"WHERE ja.deleted = false " +
"WHERE ja.isDelete = false " +
"AND (:search = '' " +
"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> findByIdAndIsDeleteFalse(Long id);
Optional<JenisAnggaran> findByJenisAnggaranAndDeletedFalse(String jenisAnggaran);
Optional<JenisAnggaran> findByJenisAnggaranAndIsDeleteFalse(String jenisAnggaran);
}

View File

@ -1,11 +1,15 @@
package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.projection.RolesView;
import com.iconplus.smartproc.model.projection.UserRoleView;
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.List;
import java.util.Optional;
@Repository
@ -18,13 +22,25 @@ public interface RolesRepository extends JpaRepository<Roles, Long> {
"r.role as role " +
"FROM Users u " +
"join Roles r on r.id=u.roleId " +
"WHERE u.deleted = false " +
"AND r.deleted = false " +
"WHERE u.isDelete = false " +
"AND r.isDelete = false " +
"AND u.username = :userName ")
Optional<UserRoleView> getUserRoleByUserId(String userName);
Optional<Roles> findByIdAndDeletedFalse(Long id);
@Query(value = "SELECT r.id as id, " +
"r.role as role, " +
"r.keterangan as keterangan, " +
"r.isActive as isActive, " +
"r.isDelete as isDelete " +
"FROM Roles r " +
"WHERE r.isDelete = false " +
"AND (:search = '' " +
"or (UPPER(r.role) like :search OR UPPER(r.keterangan) like :search)) " +
"ORDER BY r.id")
Page<RolesView> findAllRolesANdDeletedFalse(String search, Pageable pageable);
Optional<Roles> findByRoleAndDeletedFalse(Long id);
Optional<Roles> findByIdAndIsDeleteFalse(Long id);
Optional<Roles> findByRoleAndIsDeleteFalse(String role);
}

View File

@ -13,7 +13,7 @@ public interface TokenManagementRepository extends JpaRepository<TokenManagement
@Query(value = "SELECT access_token as accessToken FROM token_management " +
"WHERE user_id = :userId " +
"AND deleted = false " +
"AND isDelete = false " +
"AND expired_time >= SYSDATE", nativeQuery = true)
List<TokenManagementView> findAccessTokenByUserIdAndDeletedFalse(String userId);
}

View File

@ -1,7 +1,11 @@
package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.model.projection.UserRoleView;
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;
@ -9,6 +13,25 @@ import java.util.Optional;
@Repository
public interface UsersRepository extends JpaRepository<Users, Long> {
Optional<Users> findByEmailAndDeletedFalse(String email);
@Query("SELECT u.id as id, " +
"u.nama as nama, " +
"u.jabatan as jabatan, " +
"r.role as role, " +
"u.email as email, " +
"u.isActive as isActive, " +
"u.isDelete as isDelete " +
"FROM Users u " +
"JOIN Roles r ON r.id = u.roleId " +
"Where u.isDelete = false " +
"AND (:search='' " +
"or (UPPER(u.nama) like :search " +
" OR UPPER(u.jabatan) like :search " +
" OR UPPER(r.role) like :search " +
" OR UPPER(u.email) like :search) " +
") " +
"ORDER by u.id")
Page<UserRoleView> getAllUsersAndDeletedFase(String search, Pageable pageable);
Optional<Users> findByEmailAndIsDeleteFalse(String email);
}

View File

@ -26,7 +26,7 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
@Override
public LoginResponse execute(LoginRequest input) {
var user= usersRepository.findByEmailAndDeletedFalse(input.getEmail())
var user= usersRepository.findByEmailAndIsDeleteFalse(input.getEmail())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10003,
Constants.ERR_TTL_10003,

View File

@ -3,7 +3,6 @@ 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;
@ -25,15 +24,15 @@ public class DeleteJenisAnggaranService implements BaseService<JenisAnggaranRequ
@Override
public EmptyResponse execute(JenisAnggaranRequest input) {
var jenisAnggaran = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId())
var jenisAnggaran = jenisAnggaranRepository.findByIdAndIsDeleteFalse(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);
jenisAnggaran.setIsDelete(true);
jenisAnggaranRepository.save(jenisAnggaran);
log.info("success delete jenis anggaran id {}", jenisAnggaran.getDeleted());
log.info("success delete jenis anggaran id {}", jenisAnggaran.getIsDelete());
return new EmptyResponse();
}
}

View File

@ -21,7 +21,7 @@ public class GetJenisAnggaranByIdService implements BaseService<JenisAnggaranReq
@Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
JenisAnggaranResponse jenisAnggaranResponse = new JenisAnggaranResponse();
var jenisAnggaranView = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId());
var jenisAnggaranView = jenisAnggaranRepository.findByIdAndIsDeleteFalse(input.getId());
if (jenisAnggaranView.isEmpty()) {
throw new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001,
@ -31,13 +31,13 @@ public class GetJenisAnggaranByIdService implements BaseService<JenisAnggaranReq
jenisAnggaranResponse.setJenisAnggaran(jenisAnggaranView.get().getJenisAnggaran());
jenisAnggaranResponse.setKeterangan(jenisAnggaranView.get().getKeterangan());
jenisAnggaranResponse.setDeleted(jenisAnggaranView.get().getDeleted());
jenisAnggaranResponse.setIsDelete(jenisAnggaranView.get().getIsDelete());
return JenisAnggaranResponse.builder()
.id(jenisAnggaranView.get().getId())
.jenisAnggaran(jenisAnggaranView.get().getJenisAnggaran())
.keterangan(jenisAnggaranView.get().getKeterangan())
.deleted(jenisAnggaranView.get().getDeleted())
.isDelete(jenisAnggaranView.get().getIsDelete())
.build();
}
}

View File

@ -34,7 +34,7 @@ public class GetListJenisAnggaranService implements BaseService<JenisAnggaranReq
.id(jenisAnggaranView.getId())
.jenisAnggaran(jenisAnggaranView.getJenisAnggaran())
.keterangan(jenisAnggaranView.getKeterangan())
.deleted(jenisAnggaranView.getDeleted())
.isDelete(jenisAnggaranView.getIsDelete())
.build();
jenisAnggaranResponseList.add(jenisAnggaranResponse);
}

View File

@ -8,7 +8,6 @@ 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;
@ -27,18 +26,18 @@ public class PostCreateJenisAnggaranService implements BaseService<JenisAnggaran
@Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
var existJenisAnggaran = jenisAnggaranRepository.findByJenisAnggaranAndDeletedFalse(input.getJenisAnggaran());
var existJenisAnggaran = jenisAnggaranRepository.findByJenisAnggaranAndIsDeleteFalse(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()));
String.format(Constants.ERR_MSG_10002, input.getJenisAnggaran()));
}
JenisAnggaran jenisAnggaran = JenisAnggaran.builder()
.jenisAnggaran(input.getJenisAnggaran())
.keterangan(input.getKeterangan())
.deleted(false)
.isDelete(false)
.build();
jenisAnggaran.setCreatedTime(new Timestamp(System.currentTimeMillis()));

View File

@ -26,7 +26,7 @@ public class PutUpdateJenisAnggaranService implements BaseService<JenisAnggaranR
@Override
public JenisAnggaranResponse execute(JenisAnggaranRequest input) {
var jenisAnggaran = jenisAnggaranRepository.findByIdAndDeletedFalse(input.getId())
var jenisAnggaran = jenisAnggaranRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(HttpStatus.CONFLICT,
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
@ -34,7 +34,7 @@ public class PutUpdateJenisAnggaranService implements BaseService<JenisAnggaranR
jenisAnggaran.setJenisAnggaran(input.getJenisAnggaran());
jenisAnggaran.setKeterangan(input.getKeterangan());
jenisAnggaran.setDeleted(BooleanUtils.isTrue(input.getDeleted()));
jenisAnggaran.setIsDelete(BooleanUtils.isTrue(input.getIsDelete()));
jenisAnggaran.setUpdatedTime(new Timestamp(System.currentTimeMillis()));
jenisAnggaranRepository.save(jenisAnggaran);
log.info("Success edit jenis anggaran id {}", jenisAnggaran.getId());

View File

@ -0,0 +1,67 @@
package com.iconplus.smartproc.service.manajemenuser;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.UserRoleView;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.GetUsersResponse;
import com.iconplus.smartproc.model.response.UsersResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
public class GetListUserService implements BaseService<UsersRequest, GetUsersResponse> {
private UsersRepository usersRepository;
public GetListUserService(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
@Override
public GetUsersResponse execute(UsersRequest input) {
validateRequest(input);
List<UsersResponse> usersResponses = new ArrayList<>();
var userRoleViews = usersRepository.getAllUsersAndDeletedFase(input.getEmail(), input.getPageable());
for (UserRoleView userRoleView : userRoleViews) {
UsersResponse usersResponse = UsersResponse.builder()
.id(userRoleView.getId())
.instansi(userRoleView.getInstansi())
.bidang(userRoleView.getBidang())
.nama(userRoleView.getNama())
.jabatan(userRoleView.getJabatan())
.role(userRoleView.getRole())
.email(userRoleView.getEmail())
.isActive(userRoleView.getIsActive())
.build();
usersResponses.add(usersResponse);
}
return GetUsersResponse.builder()
.data(usersResponses)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(userRoleViews.getTotalPages())
.totalRecords(userRoleViews.getTotalElements())
.isFirstPage(userRoleViews.isFirst())
.isLastPage(userRoleViews.isLast())
.build())
.build();
}
private void validateRequest(UsersRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@ -0,0 +1,43 @@
package com.iconplus.smartproc.service.manajemenuser;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Users;
import com.iconplus.smartproc.model.request.UsersRequest;
import com.iconplus.smartproc.model.response.UsersResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import org.springframework.stereotype.Service;
@Service
public class PostCreateUserService implements BaseService<UsersRequest, UsersResponse> {
private UsersRepository usersRepository;
public PostCreateUserService(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
@Override
public UsersResponse execute(UsersRequest input) {
Users users = Users.builder()
// .id(input.getId())
// .username(input.getUsername())
// .email(input.getEmail())
// .nama(input.getNama())
// .bidangId(1L)
// .instansiId(1L)
// .roleId(in)
// .jabatan()
// .password()
// .isActive()
// .deleted(false)
.build();
var result = usersRepository.save(users);
return UsersResponse.builder()
.id(result.getId())
.build();
}
}

View File

@ -1,23 +0,0 @@
package com.iconplus.smartproc.service.role;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import org.springframework.stereotype.Service;
@Service
public class DeleteRoleService implements BaseService<RolesRequest, RolesResponse> {
private RolesRepository rolesRepository;
public DeleteRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
return null;
}
}

View File

@ -1,7 +0,0 @@
package com.iconplus.smartproc.service.role;
import org.springframework.stereotype.Service;
@Service
public class GetRoleByIdService {
}

View File

@ -1,7 +0,0 @@
package com.iconplus.smartproc.service.role;
import org.springframework.stereotype.Service;
@Service
public class GetRolesService {
}

View File

@ -1,7 +0,0 @@
package com.iconplus.smartproc.service.role;
import org.springframework.stereotype.Service;
@Service
public class PostCreateRoleService {
}

View File

@ -1,8 +0,0 @@
package com.iconplus.smartproc.service.role;
import com.iconplus.smartproc.helper.service.BaseService;
import org.springframework.stereotype.Service;
//@Service
//public class PutUpdateRoleService implements BaseService<> {
//}

View File

@ -0,0 +1,33 @@
package com.iconplus.smartproc.service.roles;
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.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class DeleteRoleService implements BaseService<RolesRequest, EmptyResponse> {
private RolesRepository rolesRepository;
public DeleteRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public EmptyResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
role.setIsDelete(true);
rolesRepository.save(role);
return new EmptyResponse();
}
}

View File

@ -0,0 +1,36 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class GetRoleByIdService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public GetRoleByIdService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
return RolesResponse.builder()
.id(role.getId())
.role(role.getRole())
.keterangan(role.getKeterangan())
.isActive(role.getIsActive())
.isDelete(role.getIsDelete())
.build();
}
}

View File

@ -0,0 +1,60 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.RolesView;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.GetRolesResponse;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetRolesService implements BaseService<RolesRequest, GetRolesResponse> {
private final RolesRepository rolesRepository;
public GetRolesService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public GetRolesResponse execute(RolesRequest input) {
validateRequest(input);
List<RolesResponse> rolesResponseList = new ArrayList<>();
Page<RolesView> rolesViews = rolesRepository.findAllRolesANdDeletedFalse(input.getSearch(), input.getPageable());
for (RolesView rolesView : rolesViews) {
RolesResponse rolesResponse = RolesResponse.builder()
.id(rolesView.getId())
.role(rolesView.getRole())
.keterangan(rolesView.getKeterangan())
.isActive(rolesView.getIsActive())
.isDelete(rolesView.getIsDelete())
.build();
rolesResponseList.add(rolesResponse);
}
return GetRolesResponse.builder()
.data(rolesResponseList)
.pagination(Pagination.builder()
.pageSize(input.getPageable().getPageSize())
.currentPage(input.getPageable().getPageNumber())
.totalPages(rolesViews.getTotalPages())
.totalRecords(rolesViews.getTotalElements())
.isFirstPage(rolesViews.isFirst())
.isLastPage(rolesViews.isLast())
.build())
.build();
}
private void validateRequest(RolesRequest input) {
if (StringUtils.isNotBlank(input.getSearch())) {
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
}
}
}

View File

@ -0,0 +1,44 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
public class PostCreateRoleService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public PostCreateRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Optional<Roles> role = rolesRepository.findByRoleAndIsDeleteFalse(input.getRole());
if (role.isPresent()) {
throw new BusinessException(Constants.ERR_CODE_10006,
Constants.ERR_TTL_10006,
String.format(Constants.ERR_MSG_10006, input.getRole()));
}
Roles roles = Roles.builder()
.role(input.getRole())
.keterangan(input.getKeterangan())
.isActive(input.getIsActive())
.isDelete(false)
.build();
var result = rolesRepository.save(roles);
return RolesResponse.builder()
.id(result.getId())
.build();
}
}

View File

@ -0,0 +1,38 @@
package com.iconplus.smartproc.service.roles;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Roles;
import com.iconplus.smartproc.model.request.RolesRequest;
import com.iconplus.smartproc.model.response.RolesResponse;
import com.iconplus.smartproc.repository.RolesRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class PutUpdateRoleService implements BaseService<RolesRequest, RolesResponse> {
private final RolesRepository rolesRepository;
public PutUpdateRoleService(RolesRepository rolesRepository) {
this.rolesRepository = rolesRepository;
}
@Override
public RolesResponse execute(RolesRequest input) {
Roles role = rolesRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10005,
Constants.ERR_TTL_10005,
String.format(Constants.ERR_MSG_10005, input.getId())));
role.setRole(input.getRole());
role.setKeterangan(input.getKeterangan());
role.setIsActive(input.getIsActive());
rolesRepository.save(role);
return RolesResponse.builder()
.id(role.getId())
.build();
}
}

View File

@ -10,7 +10,7 @@ public class Constants {
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";
public static final String ERR_MSG_10002 = "Jenis Anggaran : %s sudah tersedia";
public static final String ERR_CODE_10003 = "10003";
public static final String ERR_TTL_10003 = "Data tidak tersedia";
@ -20,6 +20,14 @@ public class Constants {
public static final String ERR_TTL_10004 = "Gagal Authentikasi User";
public static final String ERR_MSG_10004 = "Silahkan Periksa kembali Email dan Password Anda";
public static final String ERR_CODE_10005 = "10005";
public static final String ERR_TTL_10005 = "Data tidak tersedia";
public static final String ERR_MSG_10005 = "Role dengan id : %s tidak ditemukan";
public static final String ERR_CODE_10006 = "10006";
public static final String ERR_TTL_10006 = "Data tersedia";
public static final String ERR_MSG_10006 = "Role : %s sudah tersedia";
public static final String ERR_CODE_40041 = "40041";
public static final String ERR_TTL_40041 = "Terjadi Gangguan";
public static final String ERR_MSG_40041 = "Masalah Koneksi System";

View File

@ -11,7 +11,7 @@ spring:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/smartproc
username: postgres
password: postgres
password: postgre
jackson:
default-property-inclusion: NON_NULL
jpa: