Files
smartproc-be/src/main/java/com/iconplus/smartproc/repository/PermissionRepository.java
dirgantarasiahaan d67d8b715e enhance menu response
2023-06-01 14:43:33 +07:00

52 lines
1.9 KiB
Java

package com.iconplus.smartproc.repository;
import com.iconplus.smartproc.model.entity.Permission;
import com.iconplus.smartproc.model.projection.MenusPermissionView;
import com.iconplus.smartproc.model.projection.PermissionView;
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
public interface PermissionRepository extends JpaRepository<Permission, Long> {
@Query(value = "SELECT m.parentId as parentId, " +
"p.menuId as menuId, " +
"m.nama as nama, " +
"p.canView as canView, " +
"p.canCreate as canCreate, " +
"p.canUpdate as canUpdate, " +
"p.canDelete as canDelete, " +
"p.canRead as canRead " +
"FROM Permission p " +
"JOIN Menus m ON m.id = p.menuId " +
"WHERE p.isDelete = false " +
"AND m.isDelete = false " +
"AND p.roleId = :roleId")
List<PermissionView> getAllPermissionsByRoleId(Long roleId);
Optional<Permission> findByRoleIdAndMenuIdAndIsDeleteFalse(Long roleId, Long menuId);
@Query(value = "SELECT m.id as id, " +
"m.nama as nama, " +
"m.parentId as parentId, " +
"m.urutan as urutan, " +
"m.icon as icon, " +
"m.link as link, " +
"p.canView as canView, " +
"p.canRead as canRead, " +
"p.canCreate as canCreate, " +
"p.canUpdate as canUpdate, " +
"p.canDelete as canDelete " +
"FROM Permission p " +
"JOIN Menus m ON m.id = p.menuId " +
"WHERE m.isDelete = false " +
"AND p.isDelete = false " +
"AND p.roleId = :roleId " +
"ORDER BY m.parentId, m.urutan")
List<MenusPermissionView> getListMenusPermission(Long roleId);
}