Files
NaliiaBotMCP/src/tryton_mcp/services/base.py
aserrador 861f5030f4 refactor: add service layer architecture with Pydantic validation
- Add services layer (PartyService, ScheduleService, ProductService, ServiceCenterService)
- Add ServiceProvider for dependency injection
- Add Pydantic input validation on all MCP tools
- Add thread-safety to TrytonSettings with double-checked locking
- Update tests to mock ServiceProvider instead of direct client calls
- Add pydantic dependency
2026-03-14 22:12:33 -05:00

29 lines
709 B
Python

from typing import Any, Dict, List, Optional
from dataclasses import dataclass
@dataclass
class TrytonResponse:
success: bool
data: Any = None
error: Optional[str] = None
@property
def is_error(self) -> bool:
return not self.success
class BaseService:
def __init__(self, client: Any):
self._client = client
def call(self, method: str, args: List[Any]) -> TrytonResponse:
try:
response = self._client.call(method, args)
return TrytonResponse(success=True, data=response)
except Exception as e:
return TrytonResponse(success=False, error=str(e))
def _get_client(self) -> Any:
return self._client