working on backend-side translations

This commit is contained in:
2025-12-14 12:36:26 +01:00
parent 00d05bfaff
commit 9fd540ba3c
12 changed files with 59 additions and 81 deletions

View File

@@ -7,10 +7,8 @@ import static de.srsoftware.tools.jdbc.Query.*;
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL; import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL;
import static de.srsoftware.umbrella.bookmarks.Constants.*; import static de.srsoftware.umbrella.bookmarks.Constants.*;
import static de.srsoftware.umbrella.core.Constants.*; import static de.srsoftware.umbrella.core.Constants.*;
import static de.srsoftware.umbrella.core.Constants.ERROR_FAILED_CREATE_TABLE;
import static de.srsoftware.umbrella.core.Errors.*; import static de.srsoftware.umbrella.core.Errors.*;
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException; import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException;
import static java.lang.System.Logger.Level.ERROR;
import static java.text.MessageFormat.format; import static java.text.MessageFormat.format;
import static java.time.ZoneOffset.UTC; import static java.time.ZoneOffset.UTC;
@@ -78,7 +76,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close();; rs.close();;
return map; return map;
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_LOAD_BOOKMARKS); throw databaseException(FAILED_TO_LOAD_ENTITY,"bookmark list");
} }
} }
@@ -113,7 +111,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close();; rs.close();;
return map; return map;
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_LOAD_BOOKMARKS); throw databaseException(FAILED_TO_LOAD_ENTITY,"bookmark list");
} }
} }
@@ -127,7 +125,7 @@ CREATE TABLE IF NOT EXISTS {0} (
if (result != null) return result; if (result != null) return result;
throw UmbrellaException.notFound("no_bookmark_for_urlid",id); throw UmbrellaException.notFound("no_bookmark_for_urlid",id);
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_LOAD_BOOKMARK); throw databaseException(FAILED_TO_LOAD_ENTITY,"bookmark");
} }
} }

View File

@@ -21,12 +21,11 @@ import de.srsoftware.umbrella.core.BaseDb;
import de.srsoftware.umbrella.core.ModuleRegistry; import de.srsoftware.umbrella.core.ModuleRegistry;
import de.srsoftware.umbrella.core.exceptions.UmbrellaException; import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
import de.srsoftware.umbrella.core.model.Company; import de.srsoftware.umbrella.core.model.Company;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
import org.json.JSONObject; import org.json.JSONObject;
public class SqliteDb extends BaseDb implements CompanyDb { public class SqliteDb extends BaseDb implements CompanyDb {
@@ -104,7 +103,7 @@ CREATE TABLE IF NOT EXISTS "companies" (
delete().from(TABLE_COMPANIES).where(ID,equal(companyId)).execute(db); delete().from(TABLE_COMPANIES).where(ID,equal(companyId)).execute(db);
return companyId; return companyId;
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_DROP_COMPANY,companyId); throw databaseException(FAILED_TO_DROP_ENTITY,"company",companyId);
} }
} }
@@ -113,14 +112,14 @@ CREATE TABLE IF NOT EXISTS "companies" (
try { try {
delete().from(TABLE_COMPANIES_USERS).where(COMPANY_ID,equal(companyId)).where(USER_ID,equal(userId)).execute(db); delete().from(TABLE_COMPANIES_USERS).where(COMPANY_ID,equal(companyId)).where(USER_ID,equal(userId)).execute(db);
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_REMOVE_USER_FROM_COMPANY,userId,companyId); throw databaseException(FAILED_TO_DROP_ENTITY_OF_ENTITY,"user",userId,"company",companyId);
} }
} }
@Override @Override
public Collection<Long> getMembers(long companyId) throws UmbrellaException { public Collection<Long> getMembers(long companyId) throws UmbrellaException {
try { try {
var rs = select(ALL).from(TABLE_COMPANIES_USERS).where(COMPANY_ID, equal(companyId)).exec(db); var rs = select(ALL).from(TABLE_COMPANIES_USERS).where(COMPANY_ID, equal(companyId)).exec(db);
var ids = new HashSet<Long>(); var ids = new HashSet<Long>();
while (rs.next()) ids.add(rs.getLong(USER_ID)); while (rs.next()) ids.add(rs.getLong(USER_ID));
rs.close(); rs.close();
@@ -137,7 +136,7 @@ CREATE TABLE IF NOT EXISTS "companies" (
var last = 0L; var last = 0L;
String prefix = null; String prefix = null;
if (rs.next()){ if (rs.next()){
last = rs.getLong(LAST_CUSTOMER_NUMBER); last = rs.getLong(LAST_CUSTOMER_NUMBER);
prefix = rs.getString(CUSTOMER_NUMBER_PREFIX); prefix = rs.getString(CUSTOMER_NUMBER_PREFIX);
} }
rs.close(); rs.close();
@@ -192,10 +191,10 @@ CREATE TABLE IF NOT EXISTS "companies" (
Company company = null; Company company = null;
if (rs.next()) company = Company.of(rs); if (rs.next()) company = Company.of(rs);
rs.close(); rs.close();
if (company == null) throw databaseException(FAILED_TO_LOAD_COMPANY,companyId); if (company == null) throw databaseException(FAILED_TO_LOAD_ENTITY_BY_ID,"company",companyId);
return company; return company;
} catch (SQLException e){ } catch (SQLException e){
throw databaseException(FAILED_TO_LOAD_COMPANY,companyId); throw databaseException(FAILED_TO_LOAD_ENTITY_BY_ID,"company",companyId);
} }
} }

View File

@@ -4,7 +4,6 @@ package de.srsoftware.umbrella.company.api;
import de.srsoftware.umbrella.core.exceptions.UmbrellaException; import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
import de.srsoftware.umbrella.core.model.Company; import de.srsoftware.umbrella.core.model.Company;
import de.srsoftware.umbrella.core.model.UmbrellaUser; import de.srsoftware.umbrella.core.model.UmbrellaUser;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@@ -7,8 +7,7 @@ import static de.srsoftware.tools.jdbc.Query.insertInto;
import static de.srsoftware.tools.jdbc.Query.select; import static de.srsoftware.tools.jdbc.Query.select;
import static de.srsoftware.umbrella.contact.Constants.*; import static de.srsoftware.umbrella.contact.Constants.*;
import static de.srsoftware.umbrella.core.Constants.*; import static de.srsoftware.umbrella.core.Constants.*;
import static de.srsoftware.umbrella.core.Errors.FAILED_TO_LOAD_CONTACTS_OF_USER; import static de.srsoftware.umbrella.core.Errors.*;
import static de.srsoftware.umbrella.core.Errors.FAILED_TO_LOAD_CONTACT_BY_ID;
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException; import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException;
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.notFound; import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.notFound;
import static java.text.MessageFormat.format; import static java.text.MessageFormat.format;
@@ -68,7 +67,7 @@ public class SqliteDb extends BaseDb implements ContactDb{
Query.delete().from(TABLE_CONTACTS_USERS).where(CONTACT_ID,equal(contact.id())).execute(db); Query.delete().from(TABLE_CONTACTS_USERS).where(CONTACT_ID,equal(contact.id())).execute(db);
db.setAutoCommit(true); db.setAutoCommit(true);
} catch (SQLException e){ } catch (SQLException e){
throw databaseException("Failed to remove contact {0}",contact.id()); throw databaseException(FAILED_TO_DROP_ENTITY,"contact",contact.id());
} }
} }
@@ -96,7 +95,7 @@ public class SqliteDb extends BaseDb implements ContactDb{
if (rs.next()) contact = Contact.of(rs); if (rs.next()) contact = Contact.of(rs);
rs.close(); rs.close();
if (contact != null) return contact; if (contact != null) return contact;
throw notFound(FAILED_TO_LOAD_CONTACT_BY_ID, contactId); throw notFound(FAILED_TO_LOAD_ENTITY_BY_ID, "contact", contactId);
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_LOAD_CONTACTS_OF_USER,userId); throw databaseException(FAILED_TO_LOAD_CONTACTS_OF_USER,userId);
} }

View File

@@ -1,25 +1,25 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.core; package de.srsoftware.umbrella.core;
public class Errors { public class Errors {
public static final String FAILED_TO_ASSIGN_USER_TO_COMPANY = "failed_to_assign_user_to_company"; public static final String FAILED_TO_ASSIGN_USER_TO_COMPANY = "failed_to_assign_user_to_company";
public static final String FAILED_TO_CREATE_STATE = "failed_to_create_state"; public static final String FAILED_TO_CREATE_STATE = "failed_to_create_state";
public static final String FAILED_TO_CREATE_TABLE = "failed_to_create_table"; public static final String FAILED_TO_CREATE_TABLE = "failed_to_create_table";
public static final String FAILED_TO_DROP_COMPANY = "failed_to_drop_company"; public static final String FAILED_TO_DROP_ENTITY = "failed_to_drop_entity";
public static final String FAILED_TO_DROP_MEMBER_FROM_PROJECT = "failed_to_drop_member_from_project"; public static final String FAILED_TO_DROP_ENTITY_OF_ENTITY = "failed_to_drop_entity_from_entity";
public static final String FAILED_TO_INSERT_PROJECT = "failed_to_insert_project"; 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_LIST_ENTITIES = "failed_to_list_entities";
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_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_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_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_ENTITY = "failed_to_load_entity";
public static final String FAILED_TO_LOAD_PROJECT = "failed_to_load_project"; public static final String FAILED_TO_LOAD_ENTITY_BY_ID = "failed_to_load_entity_by_id";
public static final String FAILED_TO_LOAD_PROJECT_MEMBERS = "failed_to_load_project_members"; 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_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_MOVE = "failed_to_move";
public static final String FAILED_TO_READ_LAST_DOCID = "failed_to_read_last_docId";
public static final String FAILED_TO_SEARCH_DB = "failed_to_search_db"; 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_STORE_ENTITY = "failed_to_store_entity";
public static final String FAILED_TO_UPDATE_COLUMN = "failed_to_update_column";
public static final String FAILED_TO_UPDATE_ENTITY = "failed_to_update_entity"; public static final String FAILED_TO_UPDATE_ENTITY = "failed_to_update_entity";
} }

View File

@@ -8,7 +8,6 @@ import static java.lang.System.Logger.Level.ERROR;
import static java.lang.System.Logger.Level.WARNING; import static java.lang.System.Logger.Level.WARNING;
import static java.net.HttpURLConnection.HTTP_FORBIDDEN; import static java.net.HttpURLConnection.HTTP_FORBIDDEN;
import static java.net.HttpURLConnection.HTTP_NOT_FOUND; import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
import static java.text.MessageFormat.format;
public class UmbrellaException extends RuntimeException{ public class UmbrellaException extends RuntimeException{

View File

@@ -6,6 +6,7 @@ import static de.srsoftware.tools.jdbc.Condition.*;
import static de.srsoftware.tools.jdbc.Query.*; import static de.srsoftware.tools.jdbc.Query.*;
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL; import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL;
import static de.srsoftware.umbrella.core.Constants.*; import static de.srsoftware.umbrella.core.Constants.*;
import static de.srsoftware.umbrella.core.Errors.*;
import static de.srsoftware.umbrella.core.Field.*; import static de.srsoftware.umbrella.core.Field.*;
import static de.srsoftware.umbrella.core.Field.COMPANY_ID; import static de.srsoftware.umbrella.core.Field.COMPANY_ID;
import static de.srsoftware.umbrella.core.Field.TAX; import static de.srsoftware.umbrella.core.Field.TAX;
@@ -47,7 +48,7 @@ public class SqliteDb extends BaseDb implements DocumentDb{
var sql = format("ALTER TABLE {0} ADD COLUMN {1} VARCHAR(255)",TABLE_DOCUMENTS,TEMPLATE); var sql = format("ALTER TABLE {0} ADD COLUMN {1} VARCHAR(255)",TABLE_DOCUMENTS,TEMPLATE);
db.prepareStatement(sql).execute(); db.prepareStatement(sql).execute();
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException("Failed to update column {0} → {1} of {2}",TEMPLATE_ID,TEMPLATE,TABLE_DOCUMENTS); throw databaseException(FAILED_TO_UPDATE_COLUMN,TEMPLATE_ID,TEMPLATE,TABLE_DOCUMENTS);
} }
} }
@@ -77,8 +78,7 @@ public class SqliteDb extends BaseDb implements DocumentDb{
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(ERROR,ERROR_FAILED_CREATE_TABLE,TABLE_PRICES,e); throw databaseException(FAILED_TO_CREATE_TABLE,TABLE_PRICES);
throw new RuntimeException(e);
} }
} }
@@ -89,8 +89,7 @@ public class SqliteDb extends BaseDb implements DocumentDb{
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(ERROR,ERROR_FAILED_CREATE_TABLE,TABLE_CUSTOMER_SETTINGS,e); throw databaseException(FAILED_TO_CREATE_TABLE,TABLE_CUSTOMER_SETTINGS);
throw new RuntimeException(e);
} }
} }
@@ -124,8 +123,7 @@ CREATE TABLE IF NOT EXISTS {0} (
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(ERROR,ERROR_FAILED_CREATE_TABLE,TABLE_DOCUMENTS,e); throw databaseException(FAILED_TO_CREATE_TABLE,TABLE_DOCUMENTS);
throw new RuntimeException(e);
} }
} }
@@ -142,8 +140,7 @@ CREATE TABLE IF NOT EXISTS {0} (
.values(4,4,TYPE_REMINDER) .values(4,4,TYPE_REMINDER)
.execute(db); .execute(db);
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(ERROR,ERROR_FAILED_CREATE_TABLE,TABLE_DOCUMENT_TYPES,e); throw databaseException(FAILED_TO_CREATE_TABLE,TABLE_DOCUMENT_TYPES);
throw new RuntimeException(e);
} }
} }
@@ -169,8 +166,7 @@ CREATE TABLE IF NOT EXISTS {0} (
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(ERROR,ERROR_FAILED_CREATE_TABLE,TABLE_POSITIONS,e); throw databaseException(FAILED_TO_CREATE_TABLE,TABLE_POSITIONS);
throw new RuntimeException(e);
} }
} }
@@ -181,8 +177,7 @@ CREATE TABLE IF NOT EXISTS {0} (
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(ERROR,ERROR_FAILED_CREATE_TABLE,TABLE_TEMPLATES,e); throw databaseException(FAILED_TO_CREATE_TABLE,TABLE_TEMPLATES);
throw new RuntimeException(e);
} }
} }
@@ -201,7 +196,7 @@ CREATE TABLE IF NOT EXISTS {0} (
} catch (SQLException e){ } catch (SQLException e){
LOG.log(WARNING,"Failed to delete document {0}",docId); LOG.log(WARNING,"Failed to delete document {0}",docId);
} }
throw new UmbrellaException(500,"Failed to delete document with id {0}",docId); throw databaseException(FAILED_TO_DROP_ENTITY,"document",docId);
} }
@Override @Override
@@ -210,18 +205,18 @@ CREATE TABLE IF NOT EXISTS {0} (
db.setAutoCommit(false); db.setAutoCommit(false);
delete().from(TABLE_POSITIONS).where(DOCUMENT_ID,equal(docId)).where(POS,equal(pos)).execute(db); delete().from(TABLE_POSITIONS).where(DOCUMENT_ID,equal(docId)).where(POS,equal(pos)).execute(db);
var sql = format("UPDATE {0} SET {1} = {1}-1 WHERE {2} = ? AND {1} > ?",TABLE_POSITIONS,POS,DOCUMENT_ID); var sql = format("UPDATE {0} SET {1} = {1}-1 WHERE {2} = ? AND {1} > ?",TABLE_POSITIONS,POS,DOCUMENT_ID);
LOG.log(DEBUG,sql.replaceFirst("\\?",docId+"").replace("?",pos+""));
var stmt = db.prepareStatement(sql); var stmt = db.prepareStatement(sql);
stmt.setLong(1,docId); stmt.setLong(1,docId);
stmt.setLong(2,pos); stmt.setLong(2,pos);
stmt.execute(); stmt.execute();
stmt.close(); stmt.close();
db.setAutoCommit(true); db.setAutoCommit(true);
return pos;
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(WARNING,"Failed to delete position {0} of document {1}",pos,docId); LOG.log(WARNING,"Failed to delete position {0} of document {1}",pos,docId);
throw new UmbrellaException(500,"Failed to delete position {0} of document {1}",pos,docId); throw databaseException(FAILED_TO_DROP_ENTITY_OF_ENTITY,"position",pos,"document",docId);
} }
return pos;
} }
private void dropTemplateIdColumn() { private void dropTemplateIdColumn() {
@@ -229,7 +224,7 @@ CREATE TABLE IF NOT EXISTS {0} (
var sql = format("ALTER TABLE {0} DROP COLUMN {1}",TABLE_DOCUMENTS,TEMPLATE_ID); var sql = format("ALTER TABLE {0} DROP COLUMN {1}",TABLE_DOCUMENTS,TEMPLATE_ID);
db.prepareStatement(sql).execute(); db.prepareStatement(sql).execute();
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException("Failed to update column {0} → {1} of {2}",TEMPLATE_ID,TEMPLATE,TABLE_DOCUMENTS); throw databaseException(FAILED_TO_UPDATE_COLUMN,TEMPLATE_ID,TEMPLATE,TABLE_DOCUMENTS);
} }
} }
@@ -238,7 +233,7 @@ CREATE TABLE IF NOT EXISTS {0} (
var sql = format("DROP TABLE IF EXISTS {0};",TABLE_TEMPLATES); var sql = format("DROP TABLE IF EXISTS {0};",TABLE_TEMPLATES);
db.prepareStatement(sql).execute(); db.prepareStatement(sql).execute();
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException("Failed to drop table {0}",TABLE_TEMPLATES); throw databaseException(FAILED_TO_DROP_ENTITY,"table",TABLE_TEMPLATES);
} }
} }
@@ -265,8 +260,8 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return settings; return settings;
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(WARNING,"Failed to load customer settings (company: {0}, document type: {1}",companyId, docType.name(),e); LOG.log(WARNING,"Failed to load customer settings (company: {0}, document type: {1})",companyId, docType.name(),e);
throw new UmbrellaException(500,"Failed to load customer settings (company: {0}, document type: {1}",companyId, docType.name()); throw new UmbrellaException(500,"Failed to load customer settings (company: {0}, document type: {1})",companyId, docType.name());
} }
} }
@@ -281,7 +276,7 @@ CREATE TABLE IF NOT EXISTS {0} (
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(WARNING,"Failed to read document type ({0})!",typeId); LOG.log(WARNING,"Failed to read document type ({0})!",typeId);
} }
throw new UmbrellaException(500,"No type with id = {0}",typeId); throw databaseException(FAILED_TO_LOAD_ENTITY_BY_ID,"type",typeId);
} }
@Override @Override
@@ -298,7 +293,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return map; return map;
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException("Failed to list Documents for list of times"); throw databaseException(FAILED_TO_LIST_ENTITIES,"documents");
} }
} }
@@ -347,8 +342,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return map; return map;
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(WARNING,"Failed to search list of documents."); throw databaseException(FAILED_TO_SEARCH_DB,"documents");
throw new UmbrellaException(500,"Failed to search list of documents.").causedBy(e);
} }
} }
@@ -375,8 +369,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return map; return map;
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(WARNING,"Failed to read list of documents for company {0}.",companyId,e); throw databaseException(FAILED_TO_LIST_ENTITIES,"documents");
throw new UmbrellaException(500,"Failed to read list of documents for company {0}.",companyId).causedBy(e);
} }
} }
@@ -389,8 +382,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return types; return types;
} catch (SQLException e) { } catch (SQLException e) {
LOG.log(WARNING,"Failed to read list of document types.",e); throw databaseException(FAILED_TO_LIST_ENTITIES,"document types");
throw new UmbrellaException(500,"Failed to read list of document types.").causedBy(e);
} }
} }
@@ -418,10 +410,9 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return doc; return doc;
} }
} catch (SQLException e) { } catch (SQLException ignored) {
LOG.log(WARNING,"Failed to load document {0}.",docId,e);
} }
throw new UmbrellaException(500,"Failed to load document {0}.",docId); throw databaseException(FAILED_TO_LOAD_ENTITY_BY_ID,"document",docId);
} }
private void moveTemplateNames() { private void moveTemplateNames() {
@@ -429,7 +420,7 @@ CREATE TABLE IF NOT EXISTS {0} (
var sql = format("UPDATE {0} SET template = (SELECT name FROM templates WHERE templates.id = documents.template_id);",TABLE_DOCUMENTS); var sql = format("UPDATE {0} SET template = (SELECT name FROM templates WHERE templates.id = documents.template_id);",TABLE_DOCUMENTS);
db.prepareStatement(sql).execute(); db.prepareStatement(sql).execute();
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException("Failed to move template.names to document.templates!"); throw databaseException(FAILED_TO_MOVE,"template.names","document.templates");
} }
} }
@@ -455,7 +446,7 @@ CREATE TABLE IF NOT EXISTS {0} (
} }
return lastId; return lastId;
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException("Failed to read last document id"); throw databaseException(FAILED_TO_READ_LAST_DOCID);
} }
} }

View File

@@ -6,7 +6,6 @@ import de.srsoftware.umbrella.core.model.Permission;
import de.srsoftware.umbrella.core.model.Project; import de.srsoftware.umbrella.core.model.Project;
import de.srsoftware.umbrella.core.model.Status; import de.srsoftware.umbrella.core.model.Status;
import de.srsoftware.umbrella.core.model.UmbrellaUser; import de.srsoftware.umbrella.core.model.UmbrellaUser;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;

View File

@@ -14,18 +14,16 @@ import static de.srsoftware.umbrella.project.Constants.*;
import static java.text.MessageFormat.format; import static java.text.MessageFormat.format;
import de.srsoftware.umbrella.core.BaseDb; import de.srsoftware.umbrella.core.BaseDb;
import de.srsoftware.umbrella.core.ModuleRegistry;
import de.srsoftware.umbrella.core.exceptions.UmbrellaException; import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
import de.srsoftware.umbrella.core.model.Permission; import de.srsoftware.umbrella.core.model.Permission;
import de.srsoftware.umbrella.core.model.Project; import de.srsoftware.umbrella.core.model.Project;
import de.srsoftware.umbrella.core.model.Status; import de.srsoftware.umbrella.core.model.Status;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
import org.json.JSONObject; import org.json.JSONObject;
public class SqliteDb extends BaseDb implements ProjectDb { public class SqliteDb extends BaseDb implements ProjectDb {
@@ -114,7 +112,7 @@ CREATE TABLE IF NOT EXISTS {0} (
.where(USER_ID,equal(userId)) .where(USER_ID,equal(userId))
.execute(db); .execute(db);
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_DROP_MEMBER_FROM_PROJECT); throw databaseException(FAILED_TO_DROP_ENTITY_OF_ENTITY,"member",userId,"project",projectId);
} }
} }
@@ -154,7 +152,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return project; return project;
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_LOAD_PROJECT); throw databaseException(FAILED_TO_LOAD_ENTITY,"project");
} }
} }
@@ -176,7 +174,7 @@ CREATE TABLE IF NOT EXISTS {0} (
rs.close(); rs.close();
return projects; return projects;
} catch (SQLException e) { } catch (SQLException e) {
throw databaseException(FAILED_TO_LOAD_ITEMS); throw databaseException(FAILED_TO_LOAD_ENTITY,"items");
} }
} }

View File

@@ -13,14 +13,10 @@ import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseE
import static de.srsoftware.umbrella.stock.Constants.TABLE_ITEMS; import static de.srsoftware.umbrella.stock.Constants.TABLE_ITEMS;
import static java.lang.System.Logger.Level.DEBUG; import static java.lang.System.Logger.Level.DEBUG;
import de.srsoftware.tools.ColorLogger;
import de.srsoftware.tools.Tuple; import de.srsoftware.tools.Tuple;
import de.srsoftware.umbrella.core.ModuleRegistry;
import de.srsoftware.umbrella.core.model.*; import de.srsoftware.umbrella.core.model.*;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
public class ItemDb { public class ItemDb {

View File

@@ -6,7 +6,6 @@ import de.srsoftware.umbrella.core.model.*;
import de.srsoftware.umbrella.core.model.Location; import de.srsoftware.umbrella.core.model.Location;
import java.util.Collection; import java.util.Collection;
import java.util.Map; import java.util.Map;
import java.util.Set;
public interface StockDb { public interface StockDb {
Property addNewProperty(long itemId, String name, Object value, String unit); Property addNewProperty(long itemId, String name, Object value, String unit);

View File

@@ -98,23 +98,24 @@
"failed_to_assign_user_to_company": "Failed to assign user {0} to company {1}", "failed_to_assign_user_to_company": "Failed to assign user {0} to company {1}",
"failed_to_create_state": "Failed to create custom state!", "failed_to_create_state": "Failed to create custom state!",
"failed_to_create_table": "Failed to create table `{0}`", "failed_to_create_table": "Failed to create table `{0}`",
"failed_to_drop_company": "Failed to remove company {0}", "failed_to_drop_entity": "Failed to remove {0} {1}",
"failed_to_drop_member_from_project": "Failed to delete member (userId = {0} from project {1}", "failed_to_drop_entity_from_entity": "Failed to remove {0} {1} from {2} {3}",
"failed_to_insert_project": "Failed to insert project into database", "failed_to_insert_project": "Failed to insert project into database",
"failed_to_load_bookmark": "Failed to load bookmark", "failed_to_list_entities": "Failed to list {0}",
"failed_to_load_bookmarks": "Failed to load bookmark list",
"failed_to_load_companies": "Could not load company {0}", "failed_to_load_companies": "Could not load company {0}",
"failed_to_load_company_members": "Failed to load members of 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_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_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_entity": "Failed to load {0}",
"failed_to_load_project": "Failed to load project from database", "failed_to_load_entity_by_id": "Failed to load {0} with id = {1}",
"failed_to_load_project_members": "Failed to load members of project", "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_load_user_companies": "Failed to load companies for user {0}",
"failed_to_move": "Failed to move {0} to {1}!",
"failed_to_read_last_docId": "Failed to read last document id",
"failed_to_remove_user_from_company": "Failed to remove user {0} from company {1}", "failed_to_remove_user_from_company": "Failed to remove user {0} from company {1}",
"failed_to_search_db": "Failed to search in {0} database!", "failed_to_search_db": "Failed to search in {0} database!",
"failed_to_store_entity": "Failed to store {0}", "failed_to_store_entity": "Failed to store {0}",
"failed_to_update_column": "Failed to update column {0} → {1} of {2}",
"failed_to_update_entity": "Failed to update {0} in database", "failed_to_update_entity": "Failed to update {0} in database",
"family_name": "Familenname", "family_name": "Familenname",
"file": "Datei", "file": "Datei",