enhance menu response

This commit is contained in:
dirgantarasiahaan
2023-06-01 14:43:33 +07:00
parent 3a29c63659
commit d67d8b715e
11 changed files with 232 additions and 18 deletions

View File

@@ -3,11 +3,14 @@ package com.iconplus.smartproc.service.authentication;
import com.iconplus.smartproc.configuration.JwtTokenUtil;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.entity.Menus;
import com.iconplus.smartproc.model.entity.TokenManagement;
import com.iconplus.smartproc.model.projection.MenusPermissionView;
import com.iconplus.smartproc.model.request.LoginRequest;
import com.iconplus.smartproc.model.response.LoginResponse;
import com.iconplus.smartproc.model.response.MenusPermissionResponse;
import com.iconplus.smartproc.model.response.MenusResponse;
import com.iconplus.smartproc.model.response.ParentMenusResponse;
import com.iconplus.smartproc.model.token.TokenContent;
import com.iconplus.smartproc.repository.MenusRepository;
import com.iconplus.smartproc.repository.PermissionRepository;
@@ -75,6 +78,20 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
}
Set<String> accessMenu = new HashSet<>();
List<MenusPermissionResponse> menusPermissionResponseList = new ArrayList<>();
List<ParentMenusResponse> parentMenusResponseList = new ArrayList<>();
var parentMenu = menusRepository.findAllParentMenu();
for (Menus menus : parentMenu) {
ParentMenusResponse parentMenusResponse = ParentMenusResponse.builder()
.id(menus.getId())
.text(menus.getNama())
.icon(menus.getIcon())
.items(new ArrayList<>())
.build();
parentMenusResponseList.add(parentMenusResponse);
}
var listMenusPermission = permissionRepository.getListMenusPermission(userRoleView.getRoleId());
for (MenusPermissionView menusPermissionView : listMenusPermission) {
if (BooleanUtils.isTrue(menusPermissionView.getCanView()) ||
@@ -83,24 +100,42 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
BooleanUtils.isTrue(menusPermissionView.getCanDelete()) ||
BooleanUtils.isTrue(menusPermissionView.getCanRead())) {
accessMenu.add(menusPermissionView.getNama());
MenusPermissionResponse menusPermissionResponse = MenusPermissionResponse.builder()
.id(menusPermissionView.getId())
.nama(menusPermissionView.getNama())
.parentId(menusPermissionView.getParentId())
.urutan(menusPermissionView.getUrutan())
.icon(menusPermissionView.getIcon())
.link(menusPermissionView.getLink())
.canView(menusPermissionView.getCanView())
.canRead(menusPermissionView.getCanRead())
.canCreate(menusPermissionView.getCanCreate())
.canUpdate(menusPermissionView.getCanUpdate())
.canDelete(menusPermissionView.getCanDelete())
.build();
menusPermissionResponseList.add(menusPermissionResponse);
}
}
MenusPermissionResponse menusPermissionResponse = MenusPermissionResponse.builder()
.id(menusPermissionView.getId())
.nama(menusPermissionView.getNama())
.parentId(menusPermissionView.getParentId())
.urutan(menusPermissionView.getUrutan())
.icon(menusPermissionView.getIcon())
.link(menusPermissionView.getLink())
.canView(menusPermissionView.getCanView())
.canRead(menusPermissionView.getCanRead())
.canCreate(menusPermissionView.getCanCreate())
.canUpdate(menusPermissionView.getCanUpdate())
.canDelete(menusPermissionView.getCanDelete())
.build();
menusPermissionResponseList.add(menusPermissionResponse);
for (ParentMenusResponse parentMenusResponse : parentMenusResponseList) {
for (MenusPermissionResponse menusPermissionResponse : menusPermissionResponseList) {
if (parentMenusResponse.getId().equals(menusPermissionResponse.getParentId())) {
MenusResponse menusResponse = MenusResponse.builder()
.id(menusPermissionResponse.getId())
.text(menusPermissionResponse.getNama())
.path(menusPermissionResponse.getLink())
.canView(menusPermissionResponse.getCanView())
.canRead(menusPermissionResponse.getCanRead())
.canCreate(menusPermissionResponse.getCanCreate())
.canUpdate(menusPermissionResponse.getCanUpdate())
.canDelete(menusPermissionResponse.getCanDelete())
.build();
parentMenusResponse.getItems().add(menusResponse);
}
}
}
var tokenContent = TokenContent.builder()
@@ -146,7 +181,7 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
.email(userRoleView.getEmail())
.roleId(userRoleView.getRoleId())
.role(userRoleView.getRole())
.menus(menusPermissionResponseList)
.menus(parentMenusResponseList)
.build();
}
}