primer commit

This commit is contained in:
GEORGE committed 2026-05-28 15:08:25 -05:00
commit d858235656
14 files changed
+21213

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
from dataclasses import dataclass
from typing import Optional
import json
import os
@dataclass
class HanaConfig:
company: str
server: str
port: int
user: str
password: str
@dataclass
class ServiceLayerConfig:
url: str
username: str
password: str
maxpagesize: int
b1s_replacecollectionsonpatch: bool
@dataclass
class Config:
hana: HanaConfig
service_layer: ServiceLayerConfig
@staticmethod
def load(path: str = "config.json") -> 'Config':
if not os.path.exists(path):
raise FileNotFoundError(f"No se encontró el archivo de configuración: {path}")
with open(path, 'r', encoding='utf-8') as f:
data = json.load(f)
hana_data = data.get('hana', {})
service_layer_data = data.get('service_layer', {})
# Validar campos requeridos para HANA
required_hana = ['company', 'server', 'port', 'user', 'password']
for field in required_hana:
if field not in hana_data:
raise KeyError(f"Falta el campo requerido '{field}' en la sección 'hana' de {path}")
# Validar campos requeridos para Service Layer
required_service_layer = ['url', 'username', 'password', 'maxpagesize', 'b1s_replacecollectionsonpatch']
for field in required_service_layer:
if field not in service_layer_data:
raise KeyError(f"Falta el campo requerido '{field}' en la sección 'service_layer' de {path}")
hana = HanaConfig(**hana_data)
service_layer = ServiceLayerConfig(**service_layer_data)
return Config(hana=hana, service_layer=service_layer)