CentralBackend/repositories/settings/CompanySettingsRepository.js
2026-05-17 16:15:47 +02:00

59 lines
2.2 KiB
JavaScript

const pool = require('../../database/database');
class CompanySettingsRepository {
async get() {
const [rows] = await pool.query(
`SELECT id, company_name, company_street, company_postal_city, company_country,
company_logo_base64, company_logo_mime_type, updated_at
FROM company_settings
WHERE id = 1`
);
return rows[0] || null;
}
async update({
company_name,
company_street,
company_postal_city,
company_country,
company_logo_base64,
company_logo_mime_type,
} = {}) {
const current = await this.get();
const next = {
company_name: company_name !== undefined ? company_name : (current?.company_name ?? ''),
company_street: company_street !== undefined ? company_street : (current?.company_street ?? ''),
company_postal_city: company_postal_city !== undefined ? company_postal_city : (current?.company_postal_city ?? ''),
company_country: company_country !== undefined ? company_country : (current?.company_country ?? ''),
company_logo_base64: company_logo_base64 !== undefined ? (company_logo_base64 || null) : (current?.company_logo_base64 ?? null),
company_logo_mime_type: company_logo_mime_type !== undefined ? (company_logo_mime_type || null) : (current?.company_logo_mime_type ?? null),
};
await pool.query(
`INSERT INTO company_settings (
id, company_name, company_street, company_postal_city, company_country,
company_logo_base64, company_logo_mime_type
)
VALUES (1, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
company_name = VALUES(company_name),
company_street = VALUES(company_street),
company_postal_city = VALUES(company_postal_city),
company_country = VALUES(company_country),
company_logo_base64 = VALUES(company_logo_base64),
company_logo_mime_type = VALUES(company_logo_mime_type)`,
[
next.company_name || '',
next.company_street || '',
next.company_postal_city || '',
next.company_country || '',
next.company_logo_base64,
next.company_logo_mime_type,
]
);
return this.get();
}
}
module.exports = CompanySettingsRepository;