implemented changing project state from project page

This commit is contained in:
2025-07-20 14:48:51 +02:00
parent 680afd7700
commit c8b6c3feb7
9 changed files with 75 additions and 9 deletions

View File

@@ -115,9 +115,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
}
}
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());
private boolean addMembers(Project project, HttpExchange ex) throws IOException {
var map = project.toMap();
var members = new HashMap<Long,Map<String,Object>>();
for (var member : project.members()){
@@ -128,6 +126,13 @@ public class ProjectModule extends BaseHandler implements ProjectService {
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 {
@@ -183,7 +188,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
if (!project.hasMember(user)) throw forbidden("You are not a member of {0}",project.name());
var json = json(ex);
projects.save(project.patch(json));
return sendContent(ex,project.toMap());
return addMembers(project,ex);
}