wag-managment-api-service-l.../docs/events
berkay 26f601f01a latest version of apis event and cahce ablitites added 2025-02-10 11:41:38 +03:00
..
ReadMe.md latest version of apis event and cahce ablitites added 2025-02-10 11:41:38 +03:00

ReadMe.md

System Architecture Documentation

Core Components

1. ClusterToMethod (Router)

API router that groups related endpoints into logical clusters.

Key Components:

  • TAGS: List of router categorization tags
  • PREFIX: Base URL prefix for all contained endpoints
  • PAGEINFO: Page metadata and UI information
  • ENDPOINTS: Collection of MethodEvent instances
  • SUBCATEGORY: Nested ClusterToMethod instances for hierarchical routing

2. MethodToEvent (Endpoint Handler)

Handles individual API endpoints and their event mappings.

Key Components:

  • EVENTS: Collection of Event instances
  • HEADER_LANGUAGE_MODELS: Header localization
  • ERROR_LANGUAGE_MODELS: Error message localization
  • Endpoint metadata (URL, method, summary, description)
  • Endpoint callable with request validation

3. Event (Business Logic)

Represents individual business operations with validation.

Core Features:

  • Unique KEY_ identifier
  • Request/Response validation using PydanticModel
  • Callable business logic function
  • Language model integration

Data Flow & Storage

Redis Key Structure

CLUSTER_FUNCTION_CODES:{ClusterToMethod}
└── {PageInfo, [FunctionCodes]}

METHOD_FUNCTION_CODES:{ClusterToMethod}:MethodEvent:Endpoint
└── [FunctionCodes]

LANGUAGE_MODELS:*
└── Localization data

PAGE_MAPPER:{Type}:{BuildingID}:{UserID}
└── PageInfo

MENU_MAPPER:{Type}:{BuildingID}:{UserID}
└── PageInfo

Application Initialization Flow

  1. Pages Iteration

    • Saves router/endpoint mappings
    • Caches menu structure
  2. Events Iteration

    • Stores endpoint information
    • Caches validation schemas
  3. Web Statics

    • Caches localization data
    • Builds UI components

Request Flow

Request → Router(ClusterToMethod) → Endpoint(MethodEvent) → Event Handler
                                 ↓
                            Validation
                                 ↓
                         Business Logic

Core Services

1. ValidationService

  • Model validation handling
  • Schema caching
  • Language-specific validation
  • Redis-first validation lookup

2. EventService

  • Event routing management
  • Function code mapping
  • User-specific event access
  • Login state management

3. AuthService

  • User authentication
  • Event access control
  • User preferences (timezone, language)
  • Token management

Design Patterns

1. Multi-layer Validation

  • Language model validation
  • Function code validation
  • User access validation
  • Request/Response schema validation

2. Hierarchical Routing

  • ClusterToMethod → MethodEvent → Event
  • Nested routing via SUBCATEGORY
  • URL prefix inheritance

3. Internationalization

  • Comprehensive language support
  • Cached translations
  • Header and error localization
  • Per-user language preferences

Cache Layer

Redis Categories

RedisCategoryKeys:
├── LANGUAGE_MODELS
├── VALIDATION_USER
├── CLUSTER_FUNCTION_CODES
├── METHOD_FUNCTION_CODES
├── MENU_FIRST_LAYER
├── PAGE_MAPPER
├── MENU_MAPPER
├── AUTH (Authorization)
├── OCC (Occupant)
└── EMP (Employee)

Cache Invalidation

  • On login: User-specific caches
  • On language change: Localization caches
  • On permission change: Access control caches