| 123456789101112131415161718192021222324252627282930313233 |
- from pydantic import BaseModel, field_validator
- from typing import Optional
- class LocalConfigPutRequest(BaseModel):
- sso_enable_redirect: Optional[bool] = None
- cas_base_url: Optional[str] = None
- app_public_base_url: Optional[str] = None
- frontend_base_url: Optional[str] = None
- sso_service_path: Optional[str] = None
- sso_login_url: Optional[str] = None
- sso_logout_url: Optional[str] = None
- admin_api_key: Optional[str] = None
- @field_validator("cas_base_url", "app_public_base_url", "frontend_base_url", "sso_login_url", "sso_logout_url")
- @classmethod
- def validate_url(cls, v: Optional[str]) -> Optional[str]:
- if v is not None and v != "" and not (v.startswith("http://") or v.startswith("https://")):
- raise ValueError("URL 必须以 http:// 或 https:// 开头")
- return v
- @field_validator("admin_api_key")
- @classmethod
- def validate_admin_api_key(cls, v: Optional[str]) -> Optional[str]:
- if v is not None and v != "" and len(v) < 16:
- raise ValueError("密钥长度不能少于 16 个字符")
- return v
- class LocalConfigResponse(BaseModel):
- code: int = 0
- message: str = "success"
- data: Optional[dict] = None
|