Refactor ListProjectRolesCmd to improve project handling

This commit is contained in:
Tonitzpp 2026-04-20 11:24:50 -03:00 committed by GitHub
parent 86e0552e52
commit 3f86092136
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 5 deletions

View File

@ -72,9 +72,14 @@ public class ListProjectRolesCmd extends BaseListCmd {
@Override
public void execute() {
if (getProjectId() != null && _projectService.getProject(getProjectId()) == null) {
throw new InvalidParameterValueException("Failed to find project by ID.");
Project project = null;
if (getProjectId() != null && getProjectId() > 0) {
project = _projectService.getProject(getProjectId());
if (project == null) {
throw new InvalidParameterValueException("Unable to find project by ID.");
}
}
final String projectUuid = project != null ? project.getUuid() : null;
List<ProjectRole> projectRoles;
if (getProjectId() != null && getProjectRoleId() != null) {
projectRoles = Collections.singletonList(projRoleService.findProjectRole(getProjectRoleId(), getProjectId()));
@ -89,17 +94,17 @@ public class ListProjectRolesCmd extends BaseListCmd {
if (role == null) {
continue;
}
roleResponses.add(setupProjectRoleResponse(role));
roleResponses.add(setupProjectRoleResponse(role, projectUuid));
}
response.setResponses(roleResponses);
response.setResponseName(getCommandName());
setResponseObject(response);
}
private ProjectRoleResponse setupProjectRoleResponse(final ProjectRole role) {
private ProjectRoleResponse setupProjectRoleResponse(final ProjectRole role, final String projectUuid) {
final ProjectRoleResponse response = new ProjectRoleResponse();
response.setId(role.getUuid());
response.setProjectId(_projectService.getProject(role.getProjectId()).getUuid());
response.setProjectId(projectUuid);
response.setRoleName(role.getName());
response.setDescription(role.getDescription());
response.setObjectName("projectrole");
@ -111,3 +116,4 @@ public class ListProjectRolesCmd extends BaseListCmd {
return CallContext.current().getCallingAccountId();
}
}
}