NewBook credentials from central Settings service
Stack-wide NewBook config lives in the Settings app (LXC 116) and is fetched live via SETTINGS_URL/SETTINGS_SECRET — same pattern as cashup, room-planner and maintenance. App-local system_config credentials remain as a fallback for standalone/dev use. The app's Settings → Newbook page no longer edits credentials; it points to the central app and keeps Test Connection. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
851747b561
commit
aeb99650bd
10 changed files with 226 additions and 230 deletions
|
|
@ -51,10 +51,14 @@ class NewbookRatesClient:
|
|||
|
||||
@classmethod
|
||||
async def from_db(cls, db):
|
||||
"""Create client with credentials and VAT rate from database"""
|
||||
"""
|
||||
Create client with credentials from the central Settings service
|
||||
(stack-wide NewBook config), falling back to the app-local
|
||||
system_config table. VAT rate stays app-local either way.
|
||||
"""
|
||||
from sqlalchemy import text
|
||||
from services.central_settings import get_newbook_credentials
|
||||
|
||||
# Get credentials from config
|
||||
result = await db.execute(
|
||||
text("SELECT config_key, config_value FROM system_config WHERE config_key IN ('newbook_api_key', 'newbook_username', 'newbook_password', 'newbook_region', 'accommodation_vat_rate')")
|
||||
)
|
||||
|
|
@ -63,6 +67,10 @@ class NewbookRatesClient:
|
|||
|
||||
vat_rate = Decimal(config.get('accommodation_vat_rate', '0.20'))
|
||||
|
||||
central = await get_newbook_credentials()
|
||||
if central:
|
||||
return cls(**central, vat_rate=vat_rate)
|
||||
|
||||
return cls(
|
||||
api_key=config.get('newbook_api_key'),
|
||||
username=config.get('newbook_username'),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue