add api instansi and user management
This commit is contained in:
parent
4c500b18f5
commit
62ccecb214
@ -0,0 +1,74 @@
|
||||
package com.iconplus.smartproc.controller;
|
||||
|
||||
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
||||
import com.iconplus.smartproc.model.request.InstansiRequest;
|
||||
import com.iconplus.smartproc.model.response.GetListInstansiResponse;
|
||||
import com.iconplus.smartproc.model.response.InstansiResponse;
|
||||
import com.iconplus.smartproc.service.instansi.*;
|
||||
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/instansi")
|
||||
public class InstansiController {
|
||||
|
||||
private final GetListInstansiService getListInstansiService;
|
||||
private final PostCreateInstansiService postCreateInstansiService;
|
||||
private final PutUpdateInstansiService putUpdateInstansiService;
|
||||
private final GetInstansiByIdService getInstansiByIdService;
|
||||
private final DeleteInstansiService deleteInstansiService;
|
||||
|
||||
public InstansiController(GetListInstansiService getListInstansiService,
|
||||
PostCreateInstansiService postCreateInstansiService,
|
||||
PutUpdateInstansiService putUpdateInstansiService,
|
||||
GetInstansiByIdService getInstansiByIdService,
|
||||
DeleteInstansiService deleteInstansiService) {
|
||||
this.getListInstansiService = getListInstansiService;
|
||||
this.postCreateInstansiService = postCreateInstansiService;
|
||||
this.putUpdateInstansiService = putUpdateInstansiService;
|
||||
this.getInstansiByIdService = getInstansiByIdService;
|
||||
this.deleteInstansiService = deleteInstansiService;
|
||||
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
public GetListInstansiResponse getListInstansi(@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);
|
||||
InstansiRequest instansiRequest = InstansiRequest.builder()
|
||||
.search(search)
|
||||
.pageable(pageable)
|
||||
.build();
|
||||
|
||||
return getListInstansiService.execute(instansiRequest);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public InstansiResponse createInstansi(@RequestBody InstansiRequest request) {
|
||||
return postCreateInstansiService.execute(request);
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public InstansiResponse getInstansiById(@PathVariable Long id) {
|
||||
return getInstansiByIdService.execute(InstansiRequest.builder()
|
||||
.id(id)
|
||||
.build());
|
||||
}
|
||||
|
||||
@PutMapping("/{id}")
|
||||
public InstansiResponse updateInstansi(@PathVariable Long id, @RequestBody InstansiRequest request){
|
||||
request.setId(id);
|
||||
return putUpdateInstansiService.execute(request);
|
||||
}
|
||||
|
||||
@DeleteMapping("/{id}")
|
||||
public EmptyResponse deleteInstansi(@PathVariable Long id){
|
||||
return deleteInstansiService.execute(InstansiRequest.builder()
|
||||
.id(id)
|
||||
.build());
|
||||
}
|
||||
}
|
@ -1,33 +1,34 @@
|
||||
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.helper.model.EmptyResponse;
|
||||
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 com.iconplus.smartproc.model.response.UsersResponse;
|
||||
import com.iconplus.smartproc.service.manajemenuser.*;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
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/users")
|
||||
public class UsersController {
|
||||
@Autowired
|
||||
private UsersRepository usersRepository;
|
||||
|
||||
private final GetListUserService getListUserService;
|
||||
public UsersController(GetListUserService getListUserService) {
|
||||
private final PostCreateUserService postCreateUserService;
|
||||
private final PutUpdateUserService putUpdateUserService;
|
||||
private final GetUserByIdService getUserByIdService;
|
||||
private final DeleteUserService deleteUserService;
|
||||
public UsersController(GetListUserService getListUserService,
|
||||
PostCreateUserService postCreateUserService,
|
||||
PutUpdateUserService putUpdateUserService,
|
||||
GetUserByIdService getUserByIdService,
|
||||
DeleteUserService deleteUserService) {
|
||||
this.getListUserService = getListUserService;
|
||||
this.postCreateUserService = postCreateUserService;
|
||||
this.putUpdateUserService = putUpdateUserService;
|
||||
this.getUserByIdService = getUserByIdService;
|
||||
this.deleteUserService = deleteUserService;
|
||||
}
|
||||
|
||||
|
||||
@ -57,48 +58,28 @@ public class UsersController {
|
||||
return getListUserService.execute(usersRequest);
|
||||
}
|
||||
|
||||
// create
|
||||
@PostMapping
|
||||
public Users createUsers(@RequestBody Users users) {
|
||||
return usersRepository.save(users);
|
||||
public UsersResponse createUsers(@RequestBody UsersRequest request) {
|
||||
return postCreateUserService.execute(request);
|
||||
}
|
||||
|
||||
// get users by id rest api
|
||||
@GetMapping("/{id}")
|
||||
public ResponseEntity<Users> getUsersById(@PathVariable Long id) {
|
||||
Users users = usersRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
|
||||
return ResponseEntity.ok(users);
|
||||
public UsersResponse getUsersById(@PathVariable Long id) {
|
||||
return getUserByIdService.execute(UsersRequest.builder()
|
||||
.id(id)
|
||||
.build());
|
||||
}
|
||||
|
||||
// update users rest api
|
||||
@PutMapping("/{id}")
|
||||
public ResponseEntity<Users> updateUsers(@PathVariable Long id, @RequestBody Users usersDetails){
|
||||
Users users = usersRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
|
||||
|
||||
users.setUsername(usersDetails.getUsername());
|
||||
users.setNama(usersDetails.getNama());
|
||||
users.setEmail(usersDetails.getEmail());
|
||||
users.setPassword(usersDetails.getPassword());
|
||||
// users.setInstansi(usersDetails.getInstansi());
|
||||
// users.setBidang(usersDetails.getBidang());
|
||||
// users.setJabatan(usersDetails.getJabatan());
|
||||
// users.setRole(usersDetails.getRole());
|
||||
|
||||
Users updatedUsers = usersRepository.save(users);
|
||||
return ResponseEntity.ok(updatedUsers);
|
||||
public UsersResponse updateUsers(@PathVariable Long id, @RequestBody UsersRequest request){
|
||||
request.setId(id);
|
||||
return putUpdateUserService.execute(request);
|
||||
}
|
||||
|
||||
// delete users rest api
|
||||
@DeleteMapping("/{id}")
|
||||
public ResponseEntity<Map<String, Boolean>> deleteUsers(@PathVariable Long id){
|
||||
Users users = usersRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Users not exist with id :" + id));
|
||||
|
||||
usersRepository.delete(users);
|
||||
Map<String, Boolean> response = new HashMap<>();
|
||||
response.put("deleted", Boolean.TRUE);
|
||||
return ResponseEntity.ok(response);
|
||||
public EmptyResponse deleteUsers(@PathVariable Long id){
|
||||
return deleteUserService.execute(UsersRequest.builder()
|
||||
.id(id)
|
||||
.build());
|
||||
}
|
||||
}
|
@ -25,6 +25,9 @@ public class Instansi extends BaseEntity {
|
||||
@Column(name = "instansi")
|
||||
private String instansi;
|
||||
|
||||
@Column(name = "alamat")
|
||||
private String alamat;
|
||||
|
||||
@Column(name = "keterangan")
|
||||
private String keterangan;
|
||||
|
||||
|
@ -0,0 +1,23 @@
|
||||
package com.iconplus.smartproc.model.projection;
|
||||
|
||||
public interface InstansiView {
|
||||
|
||||
Long getId();
|
||||
void setId(Long id);
|
||||
|
||||
String getInstansi();
|
||||
void setInstansi(String instansi);
|
||||
|
||||
String getAlamat();
|
||||
void setAlamat(String alamat);
|
||||
|
||||
String getKeterangan();
|
||||
void setKeterangan(String keterangan);
|
||||
|
||||
Boolean getIsActive();
|
||||
void setIsActive(Boolean isActive);
|
||||
|
||||
Boolean getIsDelete();
|
||||
void setIsDelete(Boolean isDelete);
|
||||
|
||||
}
|
@ -21,11 +21,11 @@ public interface UserRoleView {
|
||||
void setUsername(String username);
|
||||
void setNama(String nama);
|
||||
void setEmail(String email);
|
||||
void setInstatnsi(String instansi);
|
||||
void setInstansiId(Long instansiId);
|
||||
void setInstansi(String instansi);
|
||||
void setBidangId(Long bidangId);
|
||||
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);
|
||||
|
@ -0,0 +1,25 @@
|
||||
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
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class InstansiRequest extends BaseRequest {
|
||||
|
||||
private Long id;
|
||||
private String instansi;
|
||||
private String alamat;
|
||||
private String keterangan;
|
||||
private Boolean isActive;
|
||||
private String search;
|
||||
private transient Pageable pageable;
|
||||
|
||||
}
|
@ -15,10 +15,14 @@ public class UsersRequest extends BaseRequest {
|
||||
|
||||
private Long id;
|
||||
private String username;
|
||||
private String password;
|
||||
private Long instansiId;
|
||||
private String instansi;
|
||||
private Long bidangId;
|
||||
private String bidang;
|
||||
private String nama;
|
||||
private String jabatan;
|
||||
private Long roleId;
|
||||
private String role;
|
||||
private String email;
|
||||
private Boolean isActive;
|
||||
|
@ -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 GetListInstansiResponse extends BaseResponse {
|
||||
|
||||
private List<InstansiResponse> data;
|
||||
private Pagination pagination;
|
||||
}
|
@ -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
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class InstansiResponse extends BaseResponse {
|
||||
|
||||
private Long id;
|
||||
private String instansi;
|
||||
private String alamat;
|
||||
private String keterangan;
|
||||
private Boolean isActive;
|
||||
private Boolean isDelete;
|
||||
}
|
@ -12,11 +12,19 @@ import lombok.NoArgsConstructor;
|
||||
@NoArgsConstructor
|
||||
public class UsersResponse extends BaseResponse {
|
||||
private Long id;
|
||||
private String instansi;
|
||||
private String bidang;
|
||||
private String nama;
|
||||
private String username;
|
||||
private String jabatan;
|
||||
|
||||
private Long instansiId;
|
||||
private String instansi;
|
||||
|
||||
private Long bidangId;
|
||||
private String bidang;
|
||||
|
||||
private Long roleId;
|
||||
private String role;
|
||||
|
||||
private String email;
|
||||
private Boolean isActive;
|
||||
private Boolean isDelete;
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.iconplus.smartproc.repository;
|
||||
|
||||
import com.iconplus.smartproc.model.entity.Bidang;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Repository
|
||||
public interface BidangRepository extends JpaRepository<Bidang, LokasiRepository> {
|
||||
|
||||
Optional<Bidang> findByIdAndIsDeleteFalse(Long id);
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.iconplus.smartproc.repository;
|
||||
|
||||
import com.iconplus.smartproc.model.entity.Instansi;
|
||||
import com.iconplus.smartproc.model.projection.InstansiView;
|
||||
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 InstansiRepository extends JpaRepository<Instansi, Long> {
|
||||
|
||||
@Query(value = "SELECT i.id as id," +
|
||||
"i.instansi as instansi, " +
|
||||
"i.alamat as alamat, " +
|
||||
"i.keterangan as keterangan, " +
|
||||
"i.isActive as isActive, " +
|
||||
"i.isDelete as isDelete " +
|
||||
"FROM Instansi i " +
|
||||
"WHERE i.isDelete = false " +
|
||||
"AND (:search = '' or UPPER(i.instansi) like :search)")
|
||||
Page<InstansiView> getListInstansi(String search, Pageable pageable);
|
||||
|
||||
Optional<Instansi> findByIdAndIsDeleteFalse(Long id);
|
||||
|
||||
Optional<Instansi> findByInstansiAndIsDeleteFalse(String instansi);
|
||||
}
|
@ -15,13 +15,21 @@ public interface UsersRepository extends JpaRepository<Users, Long> {
|
||||
|
||||
@Query("SELECT u.id as id, " +
|
||||
"u.nama as nama, " +
|
||||
"u.username as username, " +
|
||||
"u.jabatan as jabatan, " +
|
||||
"u.roleId as roleId, " +
|
||||
"r.role as role, " +
|
||||
"u.bidangId as bidangId, " +
|
||||
"b.bidang as bidang, " +
|
||||
"u.instansiId as instansiId, " +
|
||||
"i.instansi as instansi, " +
|
||||
"u.email as email, " +
|
||||
"u.isActive as isActive, " +
|
||||
"u.isDelete as isDelete " +
|
||||
"FROM Users u " +
|
||||
"JOIN Roles r ON r.id = u.roleId " +
|
||||
"JOIN Bidang b ON b.id = u.bidangId " +
|
||||
"JOIN Instansi i ON i.id = u.instansiId " +
|
||||
"Where u.isDelete = false " +
|
||||
"AND (:search='' " +
|
||||
"or (UPPER(u.nama) like :search " +
|
||||
@ -33,5 +41,28 @@ public interface UsersRepository extends JpaRepository<Users, Long> {
|
||||
Page<UserRoleView> getAllUsersAndDeletedFase(String search, Pageable pageable);
|
||||
|
||||
Optional<Users> findByEmailAndIsDeleteFalse(String email);
|
||||
|
||||
Optional<Users> findByIdAndIsDeleteFalse(Long id);
|
||||
|
||||
@Query("SELECT u.id as id, " +
|
||||
"u.nama as nama, " +
|
||||
"u.username as username, " +
|
||||
"u.jabatan as jabatan, " +
|
||||
"u.roleId as roleId, " +
|
||||
"r.role as role, " +
|
||||
"u.bidangId as bidangId, " +
|
||||
"b.bidang as bidang, " +
|
||||
"u.instansiId as instansiId, " +
|
||||
"i.instansi as instansi, " +
|
||||
"u.email as email, " +
|
||||
"u.isActive as isActive, " +
|
||||
"u.isDelete as isDelete " +
|
||||
"FROM Users u " +
|
||||
"JOIN Roles r ON r.id = u.roleId " +
|
||||
"JOIN Bidang b ON b.id = u.bidangId " +
|
||||
"JOIN Instansi i ON i.id = u.instansiId " +
|
||||
"Where u.isDelete = false " +
|
||||
"AND u.id = :id")
|
||||
Optional<UserRoleView> getUserByIdAndDeletedFase(Long id);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,47 @@
|
||||
package com.iconplus.smartproc.service;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.model.request.UsersRequest;
|
||||
import com.iconplus.smartproc.repository.BidangRepository;
|
||||
import com.iconplus.smartproc.repository.InstansiRepository;
|
||||
import com.iconplus.smartproc.repository.RolesRepository;
|
||||
import com.iconplus.smartproc.repository.UsersRepository;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class CommonService {
|
||||
|
||||
private UsersRepository usersRepository;
|
||||
private RolesRepository rolesRepository;
|
||||
private BidangRepository bidangRepository;
|
||||
private InstansiRepository instansiRepository;
|
||||
|
||||
public CommonService(UsersRepository usersRepository,
|
||||
RolesRepository rolesRepository,
|
||||
BidangRepository bidangRepository,
|
||||
InstansiRepository instansiRepository) {
|
||||
this.usersRepository = usersRepository;
|
||||
this.rolesRepository = rolesRepository;
|
||||
this.bidangRepository = bidangRepository;
|
||||
this.instansiRepository = instansiRepository;
|
||||
}
|
||||
|
||||
public void validateUserRequst(UsersRequest input) {
|
||||
|
||||
var roles= rolesRepository.findByIdAndIsDeleteFalse(input.getRoleId());
|
||||
if (roles.isEmpty()) {
|
||||
throw new BusinessException("err", "err", "err");
|
||||
}
|
||||
|
||||
var bidang= bidangRepository.findByIdAndIsDeleteFalse(input.getBidangId());
|
||||
if (bidang.isEmpty()) {
|
||||
throw new BusinessException("err", "err", "err");
|
||||
}
|
||||
|
||||
var instansi= instansiRepository.findByIdAndIsDeleteFalse(input.getInstansiId());
|
||||
if (instansi.isEmpty()) {
|
||||
throw new BusinessException("err", "err", "err");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.iconplus.smartproc.service.instansi;
|
||||
|
||||
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.request.InstansiRequest;
|
||||
import com.iconplus.smartproc.repository.InstansiRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class DeleteInstansiService implements BaseService<InstansiRequest, EmptyResponse> {
|
||||
|
||||
private InstansiRepository instansiRepository;
|
||||
|
||||
public DeleteInstansiService(InstansiRepository instansiRepository) {
|
||||
this.instansiRepository = instansiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EmptyResponse execute(InstansiRequest input) {
|
||||
|
||||
var instansi = instansiRepository.findByIdAndIsDeleteFalse(input.getId())
|
||||
.orElseThrow(() -> new BusinessException("err", "err", "err"));
|
||||
|
||||
instansi.setIsDelete(true);
|
||||
instansiRepository.save(instansi);
|
||||
|
||||
return new EmptyResponse();
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.iconplus.smartproc.service.instansi;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.request.InstansiRequest;
|
||||
import com.iconplus.smartproc.model.response.InstansiResponse;
|
||||
import com.iconplus.smartproc.repository.InstansiRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class GetInstansiByIdService implements BaseService<InstansiRequest, InstansiResponse> {
|
||||
|
||||
private InstansiRepository instansiRepository;
|
||||
|
||||
public GetInstansiByIdService(InstansiRepository instansiRepository) {
|
||||
this.instansiRepository = instansiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InstansiResponse execute(InstansiRequest input) {
|
||||
|
||||
var instansi= instansiRepository.findByIdAndIsDeleteFalse(input.getId())
|
||||
.orElseThrow(() -> new BusinessException("err", "err", "err"));
|
||||
|
||||
return InstansiResponse.builder()
|
||||
.id(instansi.getId())
|
||||
.instansi(instansi.getInstansi())
|
||||
.alamat(instansi.getAlamat())
|
||||
.keterangan(instansi.getKeterangan())
|
||||
.isActive(instansi.getIsActive())
|
||||
.isDelete(instansi.getIsDelete())
|
||||
.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
package com.iconplus.smartproc.service.instansi;
|
||||
|
||||
import com.iconplus.smartproc.helper.model.Pagination;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.projection.InstansiView;
|
||||
import com.iconplus.smartproc.model.request.InstansiRequest;
|
||||
import com.iconplus.smartproc.model.request.UsersRequest;
|
||||
import com.iconplus.smartproc.model.response.GetListInstansiResponse;
|
||||
import com.iconplus.smartproc.model.response.InstansiResponse;
|
||||
import com.iconplus.smartproc.repository.InstansiRepository;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class GetListInstansiService implements BaseService<InstansiRequest, GetListInstansiResponse> {
|
||||
|
||||
private InstansiRepository instansiRepository;
|
||||
|
||||
public GetListInstansiService(InstansiRepository instansiRepository) {
|
||||
this.instansiRepository = instansiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GetListInstansiResponse execute(InstansiRequest input) {
|
||||
validateRequest(input);
|
||||
|
||||
List<InstansiResponse> instansiResponseList = new ArrayList<>();
|
||||
var listInstansi = instansiRepository.getListInstansi(input.getSearch(), input.getPageable());
|
||||
|
||||
for (InstansiView instansiView : listInstansi) {
|
||||
InstansiResponse instansiResponse = InstansiResponse.builder()
|
||||
.id(instansiView.getId())
|
||||
.instansi(instansiView.getInstansi())
|
||||
.alamat(instansiView.getAlamat())
|
||||
.keterangan(instansiView.getKeterangan())
|
||||
.isActive(instansiView.getIsActive())
|
||||
.isDelete(instansiView.getIsDelete())
|
||||
.build();
|
||||
|
||||
instansiResponseList.add(instansiResponse);
|
||||
}
|
||||
|
||||
return GetListInstansiResponse.builder()
|
||||
.data(instansiResponseList)
|
||||
.pagination(Pagination.builder()
|
||||
.pageSize(input.getPageable().getPageSize())
|
||||
.currentPage(input.getPageable().getPageNumber())
|
||||
.totalPages(listInstansi.getTotalPages())
|
||||
.totalRecords(listInstansi.getTotalElements())
|
||||
.isFirstPage(listInstansi.isFirst())
|
||||
.isLastPage(listInstansi.isLast())
|
||||
.build())
|
||||
.build();
|
||||
|
||||
}
|
||||
|
||||
private void validateRequest(InstansiRequest input) {
|
||||
if (StringUtils.isNotBlank(input.getSearch())) {
|
||||
input.setSearch('%'+ input.getSearch().toUpperCase()+'%');
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package com.iconplus.smartproc.service.instansi;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.entity.Instansi;
|
||||
import com.iconplus.smartproc.model.request.InstansiRequest;
|
||||
import com.iconplus.smartproc.model.response.InstansiResponse;
|
||||
import com.iconplus.smartproc.repository.InstansiRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PostCreateInstansiService implements BaseService<InstansiRequest, InstansiResponse> {
|
||||
|
||||
private InstansiRepository instansiRepository;
|
||||
|
||||
public PostCreateInstansiService(InstansiRepository instansiRepository) {
|
||||
this.instansiRepository = instansiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InstansiResponse execute(InstansiRequest input) {
|
||||
|
||||
var instansi = instansiRepository.findByInstansiAndIsDeleteFalse(input.getInstansi());
|
||||
if (instansi.isPresent()) {
|
||||
throw new BusinessException("err", "err", "err");
|
||||
}
|
||||
|
||||
Instansi instansiEntity = Instansi.builder()
|
||||
.instansi(input.getInstansi())
|
||||
.alamat(input.getAlamat())
|
||||
.keterangan(input.getKeterangan())
|
||||
.isActive(input.getIsActive())
|
||||
.isDelete(false)
|
||||
.build();
|
||||
var result = instansiRepository.save(instansiEntity);
|
||||
|
||||
return InstansiResponse.builder()
|
||||
.id(result.getId())
|
||||
.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.iconplus.smartproc.service.instansi;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.request.InstansiRequest;
|
||||
import com.iconplus.smartproc.model.response.InstansiResponse;
|
||||
import com.iconplus.smartproc.repository.InstansiRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PutUpdateInstansiService implements BaseService<InstansiRequest, InstansiResponse> {
|
||||
|
||||
private InstansiRepository instansiRepository;
|
||||
|
||||
public PutUpdateInstansiService(InstansiRepository instansiRepository) {
|
||||
this.instansiRepository = instansiRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InstansiResponse execute(InstansiRequest input) {
|
||||
|
||||
var instansi = instansiRepository.findByIdAndIsDeleteFalse(input.getId())
|
||||
.orElseThrow(() -> new BusinessException("err", "err", "err"));
|
||||
|
||||
instansi.setInstansi(input.getInstansi());
|
||||
instansi.setAlamat(input.getAlamat());
|
||||
instansi.setKeterangan(input.getKeterangan());
|
||||
instansi.setIsActive(input.getIsActive());
|
||||
var result = instansiRepository.save(instansi);
|
||||
|
||||
return InstansiResponse.builder()
|
||||
.id(result.getId())
|
||||
.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.iconplus.smartproc.service.manajemenuser;
|
||||
|
||||
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.request.UsersRequest;
|
||||
import com.iconplus.smartproc.repository.UsersRepository;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class DeleteUserService implements BaseService<UsersRequest, EmptyResponse> {
|
||||
|
||||
private UsersRepository usersRepository;
|
||||
|
||||
public DeleteUserService(UsersRepository usersRepository) {
|
||||
this.usersRepository = usersRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EmptyResponse execute(UsersRequest input) {
|
||||
|
||||
var users = usersRepository.findByIdAndIsDeleteFalse(input.getId())
|
||||
.orElseThrow(() -> new BusinessException("err", "err", "err"));
|
||||
|
||||
users.setIsDelete(true);
|
||||
usersRepository.save(users);
|
||||
|
||||
return new EmptyResponse();
|
||||
}
|
||||
}
|
@ -3,14 +3,12 @@ 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;
|
||||
@ -35,11 +33,15 @@ public class GetListUserService implements BaseService<UsersRequest, GetUsersRes
|
||||
for (UserRoleView userRoleView : userRoleViews) {
|
||||
UsersResponse usersResponse = UsersResponse.builder()
|
||||
.id(userRoleView.getId())
|
||||
.instansi(userRoleView.getInstansi())
|
||||
.bidang(userRoleView.getBidang())
|
||||
.nama(userRoleView.getNama())
|
||||
.username(userRoleView.getUsername())
|
||||
.jabatan(userRoleView.getJabatan())
|
||||
.roleId(userRoleView.getRoleId())
|
||||
.role(userRoleView.getRole())
|
||||
.bidangId(userRoleView.getBidangId())
|
||||
.bidang(userRoleView.getBidang())
|
||||
.instansiId(userRoleView.getInstansiId())
|
||||
.instansi(userRoleView.getInstansi())
|
||||
.email(userRoleView.getEmail())
|
||||
.isActive(userRoleView.getIsActive())
|
||||
.build();
|
||||
|
@ -0,0 +1,40 @@
|
||||
package com.iconplus.smartproc.service.manajemenuser;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
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 GetUserByIdService implements BaseService<UsersRequest, UsersResponse> {
|
||||
|
||||
private UsersRepository usersRepository;
|
||||
|
||||
public GetUserByIdService(UsersRepository usersRepository) {
|
||||
this.usersRepository = usersRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UsersResponse execute(UsersRequest input) {
|
||||
|
||||
var userRoleView = usersRepository.getUserByIdAndDeletedFase(input.getId())
|
||||
.orElseThrow(() -> new BusinessException("err", "err", "err"));
|
||||
|
||||
return UsersResponse.builder()
|
||||
.id(userRoleView.getId())
|
||||
.nama(userRoleView.getNama())
|
||||
.username(userRoleView.getUsername())
|
||||
.jabatan(userRoleView.getJabatan())
|
||||
.roleId(userRoleView.getRoleId())
|
||||
.role(userRoleView.getRole())
|
||||
.bidangId(userRoleView.getBidangId())
|
||||
.bidang(userRoleView.getBidang())
|
||||
.instansiId(userRoleView.getInstansiId())
|
||||
.instansi(userRoleView.getInstansi())
|
||||
.email(userRoleView.getEmail())
|
||||
.isActive(userRoleView.getIsActive())
|
||||
.build();
|
||||
}
|
||||
}
|
@ -1,40 +1,50 @@
|
||||
package com.iconplus.smartproc.service.manajemenuser;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
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 com.iconplus.smartproc.service.CommonService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PostCreateUserService implements BaseService<UsersRequest, UsersResponse> {
|
||||
|
||||
private UsersRepository usersRepository;
|
||||
private CommonService commonService;
|
||||
|
||||
public PostCreateUserService(UsersRepository usersRepository) {
|
||||
public PostCreateUserService(UsersRepository usersRepository,
|
||||
CommonService commonService) {
|
||||
this.usersRepository = usersRepository;
|
||||
this.commonService = commonService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UsersResponse execute(UsersRequest input) {
|
||||
|
||||
var users = usersRepository.findByEmailAndIsDeleteFalse(input.getEmail());
|
||||
if (users.isPresent()) {
|
||||
throw new BusinessException("err", "err", "err");
|
||||
}
|
||||
|
||||
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)
|
||||
commonService.validateUserRequst(input);
|
||||
Users usersEntity = Users.builder()
|
||||
.instansiId(input.getInstansiId())
|
||||
.bidangId(input.getBidangId())
|
||||
.nama(input.getNama())
|
||||
.username(input.getUsername())
|
||||
.jabatan(input.getJabatan())
|
||||
.roleId(input.getRoleId())
|
||||
.email(input.getEmail())
|
||||
.password(input.getPassword())
|
||||
.isActive(input.getIsActive())
|
||||
.isDelete(false)
|
||||
.build();
|
||||
|
||||
var result = usersRepository.save(users);
|
||||
var result = usersRepository.save(usersEntity);
|
||||
return UsersResponse.builder()
|
||||
.id(result.getId())
|
||||
.build();
|
||||
|
@ -0,0 +1,45 @@
|
||||
package com.iconplus.smartproc.service.manajemenuser;
|
||||
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.request.UsersRequest;
|
||||
import com.iconplus.smartproc.model.response.UsersResponse;
|
||||
import com.iconplus.smartproc.repository.UsersRepository;
|
||||
import com.iconplus.smartproc.service.CommonService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class PutUpdateUserService implements BaseService<UsersRequest, UsersResponse> {
|
||||
|
||||
private UsersRepository usersRepository;
|
||||
private CommonService commonService;
|
||||
|
||||
public PutUpdateUserService(UsersRepository usersRepository,
|
||||
CommonService commonService) {
|
||||
this.usersRepository = usersRepository;
|
||||
this.commonService = commonService;
|
||||
}
|
||||
@Override
|
||||
public UsersResponse execute(UsersRequest input) {
|
||||
|
||||
var users = usersRepository.findByIdAndIsDeleteFalse(input.getId())
|
||||
.orElseThrow(() -> new BusinessException("err", "err", "err"));
|
||||
|
||||
commonService.validateUserRequst(input);
|
||||
|
||||
users.setInstansiId(input.getInstansiId());
|
||||
users.setBidangId(input.getBidangId());
|
||||
users.setNama(input.getNama());
|
||||
users.setUsername(input.getUsername());
|
||||
users.setJabatan(input.getJabatan());
|
||||
users.setRoleId(input.getRoleId());
|
||||
users.setEmail(input.getEmail());
|
||||
users.setPassword(input.getPassword());
|
||||
users.setIsActive(input.getIsActive());
|
||||
users.setIsDelete(false);
|
||||
var result = usersRepository.save(users);
|
||||
return UsersResponse.builder()
|
||||
.id(result.getId())
|
||||
.build();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user