diff --git a/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java b/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java index a70530e..089554b 100644 --- a/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java +++ b/project/src/main/java/de/srsoftware/umbrella/project/ProjectModule.java @@ -39,6 +39,19 @@ public class ProjectModule extends BaseHandler implements ProjectService { users = companies.userService(); } + private boolean addMembers(Project project, HttpExchange ex) throws IOException { + var map = project.toMap(); + var members = new HashMap>(); + for (var entry : project.members().entrySet()){ + var userId = entry.getKey(); + var perm = entry.getValue().permission().toMap(); + members.put(userId,Map.of(USER,users.loadUser(userId).toMap(),PERMISSION,perm)); + } + if (!members.isEmpty()) map.put(MEMBERS,members); + project.companyId().map(companies::get).map(Company::toMap).ifPresent(data -> map.put(COMPANY,data)); + return sendContent(ex,map); + } + @Override public CompanyService companyService() { return companies; @@ -115,35 +128,12 @@ public class ProjectModule extends BaseHandler implements ProjectService { } } - private boolean addMembers(Project project, HttpExchange ex) throws IOException { - var map = project.toMap(); - var members = new HashMap>(); - for (var entry : project.members().entrySet()){ - var userId = entry.getKey(); - var perm = entry.getValue().permission().toMap(); - members.put(userId,Map.of(USER,users.loadUser(userId).toMap(),PERMISSION,perm)); - } - if (!members.isEmpty()) map.put(MEMBERS,members); - project.companyId().map(companies::get).map(Company::toMap).ifPresent(data -> map.put(COMPANY,data)); - return sendContent(ex,map); - - } - private boolean getProject(HttpExchange ex, long projectId, UmbrellaUser user) throws IOException, UmbrellaException { var project = projects.load(projectId); if (!project.hasMember(user)) throw forbidden("You are not a member of {0}",project.name()); return addMembers(project,ex); } - private boolean postProjectList(HttpExchange ex, UmbrellaUser user) throws IOException { - var json = json(ex); - var showClosed = json.has(SHOW_CLOSED) && json.get(SHOW_CLOSED) instanceof Boolean bool ? bool : false; - if (json.has(COMPANY_ID) && json.get(COMPANY_ID) instanceof Number companyId) return listCompanyProjects(ex, user, companyId.longValue()); - return listUserProjects(ex,user,showClosed); - - } - - public Collection listCompanyProjects(long companyId, boolean includeClosed) throws UmbrellaException { return projects.ofCompany(companyId, includeClosed).values().stream().sorted(comparing(Project::name)).toList(); } @@ -209,4 +199,12 @@ public class ProjectModule extends BaseHandler implements ProjectService { prj = projects.save(prj); return sendContent(ex,prj); } + + private boolean postProjectList(HttpExchange ex, UmbrellaUser user) throws IOException { + var json = json(ex); + var showClosed = json.has(SHOW_CLOSED) && json.get(SHOW_CLOSED) instanceof Boolean bool ? bool : false; + if (json.has(COMPANY_ID) && json.get(COMPANY_ID) instanceof Number companyId) return listCompanyProjects(ex, user, companyId.longValue()); + return listUserProjects(ex,user,showClosed); + + } } \ No newline at end of file