re-ordered methods
This commit is contained in:
@@ -39,6 +39,19 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
|||||||
users = companies.userService();
|
users = companies.userService();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean addMembers(Project project, HttpExchange ex) throws IOException {
|
||||||
|
var map = project.toMap();
|
||||||
|
var members = new HashMap<Long,Map<String,Object>>();
|
||||||
|
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
|
@Override
|
||||||
public CompanyService companyService() {
|
public CompanyService companyService() {
|
||||||
return companies;
|
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<Long,Map<String,Object>>();
|
|
||||||
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 {
|
private boolean getProject(HttpExchange ex, long projectId, UmbrellaUser user) throws IOException, UmbrellaException {
|
||||||
var project = projects.load(projectId);
|
var project = projects.load(projectId);
|
||||||
if (!project.hasMember(user)) throw forbidden("You are not a member of {0}",project.name());
|
if (!project.hasMember(user)) throw forbidden("You are not a member of {0}",project.name());
|
||||||
return addMembers(project,ex);
|
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<Project> listCompanyProjects(long companyId, boolean includeClosed) throws UmbrellaException {
|
public Collection<Project> listCompanyProjects(long companyId, boolean includeClosed) throws UmbrellaException {
|
||||||
return projects.ofCompany(companyId, includeClosed).values().stream().sorted(comparing(Project::name)).toList();
|
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);
|
prj = projects.save(prj);
|
||||||
return sendContent(ex,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);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user