conveniance modification: added registry and getters for modules to BaseHandler
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -30,16 +30,15 @@ import org.json.JSONObject;
|
||||
public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
|
||||
private final ProjectDb projects;
|
||||
private final ModuleRegistry registy;
|
||||
|
||||
public ProjectModule(ModuleRegistry registry, Configuration config) throws UmbrellaException {
|
||||
super(registry);
|
||||
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE));
|
||||
projects = new SqliteDb(connect(dbFile));
|
||||
this.registy = registry.add(this);
|
||||
}
|
||||
|
||||
private void addMember(Project project, long userId) {
|
||||
var user = registy.userService().loadUser(userId);
|
||||
var user = userService().loadUser(userId);
|
||||
var member = new Member(user,READ_ONLY);
|
||||
project.members().put(userId,member);
|
||||
project.dirty(MEMBERS);
|
||||
@@ -50,7 +49,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = registy.userService().loadUser(token);
|
||||
var user = userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head) {
|
||||
@@ -74,7 +73,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = registy.userService().loadUser(token);
|
||||
var user = userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head) {
|
||||
@@ -97,7 +96,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = registy.userService().loadUser(token);
|
||||
var user = userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head) {
|
||||
@@ -129,7 +128,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
var project = loadMembers(projects.load(projectId));
|
||||
if (!project.hasMember(user)) throw forbidden("You are not a member of {0}",project.name());
|
||||
var map = project.toMap();
|
||||
project.companyId().map(registy.companyService()::get).map(Company::toMap).ifPresent(data -> map.put(COMPANY,data));
|
||||
project.companyId().map(companyService()::get).map(Company::toMap).ifPresent(data -> map.put(COMPANY,data));
|
||||
return sendContent(ex,map);
|
||||
}
|
||||
|
||||
@@ -140,8 +139,8 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
}
|
||||
|
||||
private boolean listCompanyProjects(HttpExchange ex, UmbrellaUser user, long companyId) throws IOException, UmbrellaException {
|
||||
var company = registy.companyService().get(companyId);
|
||||
if (!registy.companyService().membership(companyId,user.id())) throw forbidden("You are mot a member of company {0}",company.name());
|
||||
var company = companyService().get(companyId);
|
||||
if (!companyService().membership(companyId,user.id())) throw forbidden("You are mot a member of company {0}",company.name());
|
||||
var projects = listCompanyProjects(companyId,false);
|
||||
return sendContent(ex,mapValues(projects));
|
||||
}
|
||||
@@ -170,7 +169,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
for (var entry : projects.getMembers(project).entrySet()){
|
||||
var userId = entry.getKey();
|
||||
var permission = entry.getValue();
|
||||
var user = userMap.computeIfAbsent(userId,k -> registy.userService().loadUser(userId));
|
||||
var user = userMap.computeIfAbsent(userId,k -> userService().loadUser(userId));
|
||||
project.members().put(userId,new Member(user,permission));
|
||||
}
|
||||
}
|
||||
@@ -194,7 +193,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
if (member.permission() == OWNER) members.put(member.user().id(),new Member(member.user(),EDIT));
|
||||
}
|
||||
}
|
||||
members.put(userId,new Member(registy.userService().loadUser(userId),permission));
|
||||
members.put(userId,new Member(userService().loadUser(userId),permission));
|
||||
project.dirty(MEMBERS);
|
||||
}
|
||||
}
|
||||
@@ -233,7 +232,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
}
|
||||
Long companyId = null;
|
||||
if (json.has(COMPANY_ID) && json.get(COMPANY_ID) instanceof Number number){
|
||||
if (!registy.companyService().membership(number.longValue(), user.id())) throw forbidden("You are not a member of company {0}!",number);
|
||||
if (!companyService().membership(number.longValue(), user.id())) throw forbidden("You are not a member of company {0}!",number);
|
||||
companyId = number.longValue();
|
||||
}
|
||||
var showClosed = false;
|
||||
@@ -246,7 +245,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
|
||||
if (json.has(TAGS) && json.get(TAGS) instanceof JSONArray arr){
|
||||
var tagList = arr.toList().stream().filter(elem -> elem instanceof String).map(String.class::cast).toList();
|
||||
registy.tagService().save(PROJECT,prj.id(),null,tagList);
|
||||
tagService().save(PROJECT,prj.id(),null,tagList);
|
||||
}
|
||||
|
||||
return sendContent(ex,prj);
|
||||
|
||||
Reference in New Issue
Block a user