working on backend-side translations
This commit is contained in:
@@ -150,7 +150,7 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
query.execute(db).close();
|
||||
return Bookmark.of(urlId,url,comment,timestamp);
|
||||
} catch (SQLException e) {
|
||||
throw databaseException(FAILED_TO_STORE_URL);
|
||||
throw databaseException(FAILED_TO_STORE_ENTITY,"url");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,7 +223,7 @@ public class CompanyModule extends BaseHandler implements CompanyService {
|
||||
var json = json(ex);
|
||||
if (!(json.has(KEY) && json.get(KEY) instanceof String key)) throw missingFieldException(KEY);
|
||||
var keys = Arrays.asList(key.split(" "));
|
||||
var companies = companyDb.find(user.id(),keys);
|
||||
var companies = companyDb.find(user,keys);
|
||||
return sendContent(ex,mapValues(companies));
|
||||
}
|
||||
|
||||
|
||||
@@ -8,22 +8,25 @@ import static de.srsoftware.tools.jdbc.Query.Dialect.SQLITE;
|
||||
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL;
|
||||
import static de.srsoftware.umbrella.company.Constants.*;
|
||||
import static de.srsoftware.umbrella.core.Constants.*;
|
||||
import static de.srsoftware.umbrella.core.Constants.COMPANY;
|
||||
import static de.srsoftware.umbrella.core.Errors.*;
|
||||
import static de.srsoftware.umbrella.core.Field.*;
|
||||
import static de.srsoftware.umbrella.core.Field.COMPANY_ID;
|
||||
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException;
|
||||
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.unprocessable;
|
||||
import static java.lang.System.Logger.Level.ERROR;
|
||||
import static java.text.MessageFormat.format;
|
||||
|
||||
import de.srsoftware.umbrella.company.api.CompanyDb;
|
||||
import de.srsoftware.umbrella.core.BaseDb;
|
||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Company;
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class SqliteDb extends BaseDb implements CompanyDb {
|
||||
@@ -141,15 +144,15 @@ CREATE TABLE IF NOT EXISTS "companies" (
|
||||
var next = last+1;
|
||||
return prefix+next; // TODO: currently not taking growing number lengths into account, this should be resolved!
|
||||
} catch (SQLException e) {
|
||||
throw databaseException("Failed to load customer number settings for company {0}",companyId);
|
||||
throw databaseException(FAILED_TO_LOAD_CUSTOMER_NUM_SETTINGS,companyId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<Long, Company> find(long userId, Collection<String> keys) {
|
||||
public HashMap<Long, Company> find(UmbrellaUser user, Collection<String> keys) {
|
||||
try {
|
||||
var query = select(DISTINCT).from(TABLE_COMPANIES).leftJoin(ID,TABLE_COMPANIES_USERS,COMPANY_ID)
|
||||
.where(USER_ID,equal(userId));
|
||||
.where(USER_ID,equal(user.id()));
|
||||
for (var key : keys){
|
||||
query.where(format("CONCAT({0},\" \",{1},\" \",{2},\" \",{3},\" \",{4})",NAME,ADDRESS,EMAIL,PHONE,BANK_ACCOUNT),like("%"+key+"%"));
|
||||
}
|
||||
@@ -162,7 +165,7 @@ CREATE TABLE IF NOT EXISTS "companies" (
|
||||
rs.close();
|
||||
return companies;
|
||||
} catch (SQLException ex){
|
||||
throw databaseException("Failed to search in company database!");
|
||||
throw databaseException(FAILED_TO_SEARCH_DB, ModuleRegistry.translator().translate(user.language(),COMPANY));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +181,7 @@ CREATE TABLE IF NOT EXISTS "companies" (
|
||||
rs.close();
|
||||
return companies;
|
||||
} catch (SQLException e) {
|
||||
throw databaseException("Failed to load companies for user {0}",userId);
|
||||
throw databaseException(FAILED_TO_LOAD_USER_COMPANIES,userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,10 +192,10 @@ CREATE TABLE IF NOT EXISTS "companies" (
|
||||
Company company = null;
|
||||
if (rs.next()) company = Company.of(rs);
|
||||
rs.close();
|
||||
if (company == null) throw new UmbrellaException("Could not load company {0}",companyId);
|
||||
if (company == null) throw databaseException(FAILED_TO_LOAD_COMPANY,companyId);
|
||||
return company;
|
||||
} catch (SQLException e){
|
||||
throw databaseException("Could not load company {0}",companyId);
|
||||
throw databaseException(FAILED_TO_LOAD_COMPANY,companyId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,7 +227,7 @@ CREATE TABLE IF NOT EXISTS "companies" (
|
||||
return company;
|
||||
}
|
||||
} catch (SQLException e){
|
||||
throw UmbrellaException.databaseException("Failed to save {0}…",company.name());
|
||||
throw databaseException(FAILED_TO_STORE_ENTITY,company.name());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,7 +241,7 @@ CREATE TABLE IF NOT EXISTS "companies" (
|
||||
try {
|
||||
update(TABLE_COMPANIES).set(LAST_CUSTOMER_NUMBER,CUSTOMER_NUMBER_PREFIX).where(ID,equal(companyId)).prepare(db).apply(number,prefix).close();
|
||||
} catch (SQLException e) {
|
||||
throw databaseException("Failed to update customer number counter for company {0}", companyId);
|
||||
throw databaseException(FAILED_TO_UPDATE_ENTITY, LAST_CUSTOMER_NUMBER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package de.srsoftware.umbrella.company.api;
|
||||
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Company;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -14,7 +16,7 @@ public interface CompanyDb {
|
||||
|
||||
void dropUser(long company_id, long user_id);
|
||||
|
||||
HashMap<Long, Company> find(long userId, Collection<String> keys);
|
||||
HashMap<Long, Company> find(UmbrellaUser userId, Collection<String> keys);
|
||||
|
||||
Collection<Long> getMembers(long companyId) throws UmbrellaException;
|
||||
|
||||
|
||||
@@ -9,13 +9,17 @@ public class Errors {
|
||||
public static final String FAILED_TO_INSERT_PROJECT = "failed_to_insert_project";
|
||||
public static final String FAILED_TO_LOAD_BOOKMARK = "failed_to_load_bookmark";
|
||||
public static final String FAILED_TO_LOAD_BOOKMARKS = "failed_to_load_bookmarks";
|
||||
public static final String FAILED_TO_LOAD_COMPANY = "failed_to_load_companies";
|
||||
public static final String FAILED_TO_LOAD_COMPANY_MEMBERS = "failed_to_load_company_members";
|
||||
public static final String FAILED_TO_LOAD_CONTACT_BY_ID = "failed_to_load_contact_by_id";
|
||||
public static final String FAILED_TO_LOAD_CONTACTS_OF_USER = "failed_to_load_contacts_of_user";
|
||||
public static final String FAILED_TO_LOAD_CUSTOMER_NUM_SETTINGS = "failed_to_load_customer_number_settings";
|
||||
public static final String FAILED_TO_LOAD_ITEMS = "failed_to_load_items";
|
||||
public static final String FAILED_TO_LOAD_PROJECT = "failed_to_load_project";
|
||||
public static final String FAILED_TO_LOAD_PROJECT_MEMBERS = "failed_to_load_project_members";
|
||||
public static final String FAILED_TO_LOAD_USER_COMPANIES = "failed_to_load_user_companies";
|
||||
public static final String FAILED_TO_REMOVE_USER_FROM_COMPANY = "failed_to_remove_user_from_company";
|
||||
public static final String FAILED_TO_STORE_URL = "failed_to_store_url";
|
||||
public static final String FAILED_TO_UPDATE_PROJECT = "failed_to_update_project";
|
||||
public static final String FAILED_TO_SEARCH_DB = "failed_to_search_db";
|
||||
public static final String FAILED_TO_STORE_ENTITY = "failed_to_store_entity";
|
||||
public static final String FAILED_TO_UPDATE_ENTITY = "failed_to_update_entity";
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Permission;
|
||||
import de.srsoftware.umbrella.core.model.Project;
|
||||
import de.srsoftware.umbrella.core.model.Status;
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -17,7 +19,7 @@ public interface ProjectDb {
|
||||
|
||||
Map<Long, Project> ofUser(long userId, boolean includeClosed) throws UmbrellaException;
|
||||
|
||||
Project save(Project prj) throws UmbrellaException;
|
||||
Project save(Project prj, UmbrellaUser user) throws UmbrellaException;
|
||||
|
||||
Status save(long projectId, Status newState);
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
if (json.has(MEMBERS) && json.get(MEMBERS) instanceof JSONObject memberJson) patchMembers(project,memberJson);
|
||||
if (json.has(NEW_MEMBER) && json.get(NEW_MEMBER) instanceof Number num) addMember(project,num.longValue());
|
||||
|
||||
projectDb.save(project.patch(json));
|
||||
projectDb.save(project.patch(json), user);
|
||||
return sendContent(ex,project.toMap());
|
||||
}
|
||||
|
||||
@@ -246,7 +246,7 @@ public class ProjectModule extends BaseHandler implements ProjectService {
|
||||
}
|
||||
var owner = Map.of(user.id(),new Member(user,OWNER));
|
||||
var prj = new Project(0,name,description, OPEN.code(),companyId,showClosed, owner, PREDEFINED);
|
||||
prj = projectDb.save(prj);
|
||||
prj = projectDb.save(prj,user);
|
||||
|
||||
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();
|
||||
|
||||
@@ -6,14 +6,15 @@ import static de.srsoftware.tools.jdbc.Query.*;
|
||||
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL;
|
||||
import static de.srsoftware.umbrella.core.Constants.*;
|
||||
import static de.srsoftware.umbrella.core.Errors.*;
|
||||
import static de.srsoftware.umbrella.core.ModuleRegistry.translator;
|
||||
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException;
|
||||
import static de.srsoftware.umbrella.core.model.Status.COMPLETE;
|
||||
import static de.srsoftware.umbrella.core.model.Status.OPEN;
|
||||
import static de.srsoftware.umbrella.project.Constants.*;
|
||||
import static java.lang.System.Logger.Level.ERROR;
|
||||
import static java.text.MessageFormat.format;
|
||||
|
||||
import de.srsoftware.umbrella.core.BaseDb;
|
||||
import de.srsoftware.umbrella.core.ModuleRegistry;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Permission;
|
||||
import de.srsoftware.umbrella.core.model.Project;
|
||||
@@ -23,6 +24,8 @@ import java.sql.SQLException;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class SqliteDb extends BaseDb implements ProjectDb {
|
||||
@@ -218,7 +221,7 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
}
|
||||
|
||||
@Override
|
||||
public Project save(Project prj) throws UmbrellaException {
|
||||
public Project save(Project prj, UmbrellaUser user) throws UmbrellaException {
|
||||
if (prj.id() == 0) { // new
|
||||
try {
|
||||
var stmt = insertInto(TABLE_PROJECTS, NAME, DESCRIPTION, STATUS, COMPANY_ID, SHOW_CLOSED).values(prj.name(), prj.description(), prj.status(), prj.companyId().orElse(null), prj.showClosed()).execute(db);
|
||||
@@ -256,7 +259,7 @@ CREATE TABLE IF NOT EXISTS {0} (
|
||||
}
|
||||
return prj;
|
||||
} catch (SQLException e) {
|
||||
throw databaseException(FAILED_TO_UPDATE_PROJECT);
|
||||
throw databaseException(FAILED_TO_UPDATE_ENTITY, translator().translate(user.language(),"project"));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -103,15 +103,19 @@
|
||||
"failed_to_insert_project": "Failed to insert project into database",
|
||||
"failed_to_load_bookmark": "Failed to load bookmark",
|
||||
"failed_to_load_bookmarks": "Failed to load bookmark list",
|
||||
"failed_to_load_companies": "Could not load company {0}",
|
||||
"failed_to_load_company_members": "Failed to load members of company {0}",
|
||||
"failed_to_load_contact_by_id": "Failed to load contact with id = {0}",
|
||||
"failed_to_load_contacts_of_user": "Failed to load contacts of user {0}",
|
||||
"failed_to_load_customer_number_settings": "Failed to load customer number settings for company {0}",
|
||||
"failed_to_load_items": "Failed to load items from database",
|
||||
"failed_to_load_project": "Failed to load project from database",
|
||||
"failed_to_load_project_members": "Failed to load members of project",
|
||||
"failed_to_load_user_companies": "Failed to load companies for user {0}",
|
||||
"failed_to_remove_user_from_company": "Failed to remove user {0} from company {1}",
|
||||
"failed_to_store_url": "Failed to store url",
|
||||
"failed_to_update_project": "Failed to update project in database",
|
||||
"failed_to_search_db": "Failed to search in {0} database!",
|
||||
"failed_to_store_entity": "Failed to store {0}",
|
||||
"failed_to_update_entity": "Failed to update {0} in database",
|
||||
"family_name": "Familenname",
|
||||
"file": "Datei",
|
||||
"files": "Dateien",
|
||||
|
||||
Reference in New Issue
Block a user