Add automatic paypal charging, add ticket page mock

This commit is contained in:
David Rodenkirchen
2026-05-21 11:32:08 +02:00
parent 695b5ae741
commit 6c8c0c7a4f
12 changed files with 321 additions and 29 deletions
+21 -1
View File
@@ -1,12 +1,13 @@
import sys
from datetime import datetime
from decimal import Decimal
from pathlib import Path
import logging
import tomllib
from from_root import from_root
from elm.types.ConfigurationTypes import MailingServiceConfiguration, LanInfo, ReceiptPrintingConfiguration, DatabaseConfiguration, PayPalConfiguration
from elm.types.ConfigurationTypes import MailingServiceConfiguration, LanInfo, ReceiptPrintingConfiguration, DatabaseConfiguration, PayPalConfiguration, TicketInfo
logger = logging.getLogger(__name__.split(".")[-1])
logger.setLevel(logging.DEBUG)
@@ -46,6 +47,21 @@ class ConfigurationService:
logger.fatal("Error loading DatabaseConfiguration, exiting...")
sys.exit(1)
def get_ticket_info(self) -> tuple[TicketInfo, ...]:
try:
return tuple([TicketInfo(
category=value,
total_tickets=self._config["tickets"][value]["total_tickets"],
price=Decimal(self._config["tickets"][value]["price"]),
description=self._config["tickets"][value]["description"],
additional_info=self._config["tickets"][value]["additional_info"]
) for value in self._config["tickets"]])
except KeyError as e:
logger.debug(e)
logger.fatal("Error loading ticket configuration, exiting...")
sys.exit(1)
def get_database_configuration(self) -> DatabaseConfiguration:
try:
return DatabaseConfiguration(
@@ -117,3 +133,7 @@ class ConfigurationService:
@property
def DEFAULT_PROFILE_PICTURE(self) -> bytes:
return self._DEFAULT_PROFILE_PICTURE
@property
def BASE_URL(self) -> str:
return self._config["misc"]["base_url"]