freactoring to get company list work in efficient way
This commit is contained in:
@@ -19,9 +19,7 @@ import de.srsoftware.umbrella.core.model.Company;
|
||||
import de.srsoftware.umbrella.core.model.Token;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
|
||||
public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
|
||||
@@ -58,8 +56,9 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
}
|
||||
|
||||
private boolean getCompanyList(UmbrellaUser user, HttpExchange ex) throws IOException, UmbrellaException {
|
||||
var list = listCompaniesOf(user).stream().map(Company::toMap);
|
||||
return sendContent(ex,list);
|
||||
var result = new HashMap<Long,Map<String,Object>>();
|
||||
for (var entry : listCompaniesOf(user).entrySet()) result.put(entry.getKey(),entry.getValue().toMap());
|
||||
return sendContent(ex,result);
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +71,7 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Company> listCompaniesOf(UmbrellaUser user) throws UmbrellaException {
|
||||
public Map<Long,Company> listCompaniesOf(UmbrellaUser user) throws UmbrellaException {
|
||||
return companyDb.listCompaniesOf(user.id());
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,9 @@ import de.srsoftware.umbrella.core.model.Company;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
public class SqliteDb implements CompanyDb {
|
||||
|
||||
@@ -38,11 +40,14 @@ public class SqliteDb implements CompanyDb {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Company> listCompaniesOf(long userId) throws UmbrellaException {
|
||||
public Map<Long,Company> listCompaniesOf(long userId) throws UmbrellaException {
|
||||
try {
|
||||
var rs = select("*").from(TABLE_COMPANIES).leftJoin(ID,TABLE_COMPANIES_USERS,COMPANY_ID).where(USER_ID,equal(userId)).exec(db);
|
||||
var companies = new HashSet<Company>();
|
||||
while (rs.next()) companies.add(Company.of(rs));
|
||||
var companies = new HashMap<Long,Company>();
|
||||
while (rs.next()) {
|
||||
var company = Company.of(rs);
|
||||
companies.put(company.id(),company);
|
||||
}
|
||||
rs.close();
|
||||
return companies;
|
||||
} catch (SQLException e) {
|
||||
|
||||
@@ -4,11 +4,12 @@ package de.srsoftware.umbrella.company.api;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Company;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
public interface CompanyDb {
|
||||
Collection<Long> getMembers(long companyId) throws UmbrellaException;
|
||||
|
||||
Collection<Company> listCompaniesOf(long id) throws UmbrellaException;
|
||||
Map<Long,Company> listCompaniesOf(long id) throws UmbrellaException;
|
||||
|
||||
Company load(long companyId) throws UmbrellaException;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user