introduced ModuleRegistry to easy inter-module dependencies
This commit is contained in:
@@ -14,8 +14,8 @@ import de.srsoftware.tools.Path;
|
||||
import de.srsoftware.tools.SessionToken;
|
||||
import de.srsoftware.umbrella.company.api.CompanyDb;
|
||||
import de.srsoftware.umbrella.core.BaseHandler;
|
||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||
import de.srsoftware.umbrella.core.api.CompanyService;
|
||||
import de.srsoftware.umbrella.core.api.UserService;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.*;
|
||||
import java.io.IOException;
|
||||
@@ -23,13 +23,13 @@ import java.util.*;
|
||||
|
||||
public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
|
||||
private final UserService users;
|
||||
private final CompanyDb companyDb;
|
||||
private final ModuleRegistry registry;
|
||||
|
||||
public CompanyModule(Configuration config, UserService userService) throws UmbrellaException {
|
||||
public CompanyModule(ModuleRegistry registry, Configuration config) throws UmbrellaException {
|
||||
var dbFile = config.get(CONFIG_DATABASE).orElseThrow(() -> missingFieldException(CONFIG_DATABASE));
|
||||
companyDb = new SqliteDb(connect(dbFile));
|
||||
users = userService;
|
||||
this.registry = registry.add(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -37,7 +37,7 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = users.loadUser(token);
|
||||
var user = registry.userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head){
|
||||
@@ -55,7 +55,7 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = users.loadUser(token);
|
||||
var user = registry.userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head) {
|
||||
@@ -74,7 +74,7 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
addCors(ex);
|
||||
try {
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = users.loadUser(token);
|
||||
var user = registry.userService().loadUser(token);
|
||||
if (user.isEmpty()) return unauthorized(ex);
|
||||
var head = path.pop();
|
||||
return switch (head) {
|
||||
@@ -102,7 +102,7 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
@Override
|
||||
public Collection<UmbrellaUser> getMembers(long companyId) throws UmbrellaException {
|
||||
var members = new HashSet<UmbrellaUser>();
|
||||
for (var userId : companyDb.getMembers(companyId)) members.add(users.loadUser(userId));
|
||||
for (var userId : companyDb.getMembers(companyId)) members.add(registry.userService().loadUser(userId));
|
||||
return members;
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
var userMap = new HashMap<Long,UmbrellaUser>();
|
||||
for (var company : companyList){
|
||||
for (var userId : companyDb.getMembers(company.id())){
|
||||
var user = userMap.computeIfAbsent(userId,k -> users.loadUser(userId));
|
||||
var user = userMap.computeIfAbsent(userId,k -> registry.userService().loadUser(userId));
|
||||
company.members().put(userId,user);
|
||||
}
|
||||
}
|
||||
@@ -166,9 +166,4 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
companyDb.addUser(company.id(),user.id());
|
||||
return sendContent(ex,company);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserService userService() {
|
||||
return users;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user