package jnpf.dmsController.permission;
|
|
import jakarta.validation.Valid;
|
import jnpf.base.ActionResult;
|
import jnpf.dmsEntity.permission.entity.DmsDocumentEntity;
|
import jnpf.dmsEntity.permission.entity.DmsFileVersionEntity;
|
import jnpf.dmsEntity.permission.entity.DmsFolderEntity;
|
import jnpf.dmsEntity.permission.enums.DmsResourceType;
|
import jnpf.dmsEntity.permission.form.FolderCreateUserForm;
|
import jnpf.dmsEntity.permission.vo.DmsCursorPageVO;
|
import jnpf.dmsEntity.permission.vo.DmsPermissionGrantVO;
|
import jnpf.dmsEntity.permission.vo.DmsPermissionResourceVO;
|
import jnpf.dmsEntity.permission.vo.DmsResourceTypeDefinitionVO;
|
import jnpf.dmsService.DmsPermissionAdminQueryService;
|
import jnpf.dmsService.DmsResourceQueryService;
|
import jnpf.dmsService.DmsResourceService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.List;
|
import java.util.UUID;
|
|
@RestController
|
@RequestMapping
|
@RequiredArgsConstructor
|
public class PermissionResourceController {
|
private final DmsResourceQueryService resourceQueryService;
|
private final DmsPermissionAdminQueryService permissionQueryService;
|
private final DmsResourceService resourceService;
|
|
@GetMapping("/permission-resource-types")
|
public ActionResult<List<DmsResourceTypeDefinitionVO>> resourceTypes() {
|
return ActionResult.success(resourceQueryService.typeDefinitions());
|
}
|
|
@GetMapping("/permission-resources")
|
public ActionResult<DmsCursorPageVO<DmsPermissionResourceVO>> resources(
|
@RequestParam(value = "resourceType", required = false) String resourceType,
|
@RequestParam(value = "cursor", required = false) String cursor,
|
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
|
return ActionResult.success(resourceQueryService.page(resourceType, cursor, pageSize));
|
}
|
|
@GetMapping("/permission-resources/tree")
|
public ActionResult<List<DmsPermissionResourceVO>> resourceTree(
|
@RequestParam(value = "parentId", required = false) UUID parentId,
|
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
|
return ActionResult.success(resourceQueryService.children(parentId, pageSize));
|
}
|
|
@GetMapping("/permission-resources/{id}")
|
public ActionResult<DmsPermissionResourceVO> resource(@PathVariable("id") UUID id) {
|
return ActionResult.success(resourceQueryService.resource(id));
|
}
|
|
@GetMapping("/permission-resources/{id}/grants")
|
public ActionResult<List<DmsPermissionGrantVO>> resourceGrants(@PathVariable("id") UUID id) {
|
DmsPermissionResourceVO resource = resourceQueryService.resource(id);
|
return ActionResult.success(permissionQueryService.resourceGrants(
|
DmsResourceType.valueOf(resource.getResourceType()), id));
|
}
|
|
@GetMapping("/folders/{id}")
|
public ActionResult<DmsFolderEntity> folder(@PathVariable("id") UUID id) {
|
return ActionResult.success(resourceQueryService.folder(id));
|
}
|
|
@PostMapping("/folders")
|
public ActionResult<DmsPermissionResourceVO> createFolder(
|
@RequestBody @Valid FolderCreateUserForm form) {
|
return ActionResult.success(resourceService.createFolder(form));
|
}
|
|
@GetMapping("/documents/{id}")
|
public ActionResult<DmsDocumentEntity> document(@PathVariable("id") UUID id) {
|
return ActionResult.success(resourceQueryService.document(id));
|
}
|
|
@GetMapping("/file-versions/{id}")
|
public ActionResult<DmsFileVersionEntity> fileVersion(@PathVariable("id") UUID id) {
|
return ActionResult.success(resourceQueryService.fileVersion(id));
|
}
|
}
|