primer commit
This commit is contained in:
commit
d858235656
14 files changed
+21213
No files matched your search
@@ -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)
|
||||
Reference in new issue
Block a user