pydantic stuff

This commit is contained in:
Troy Grunt 2024-11-22 12:40:16 +01:00
parent 90e0cf3d94
commit 1a0f55df8a
2 changed files with 61 additions and 4 deletions

View File

@ -1 +1,3 @@
requests
pydantic

View File

@ -1,4 +1,24 @@
# core.py
from pydantic import BaseModel, Field
from typing import List, Optional
from datetime import date
class User(BaseModel):
handle: str
name: str
enlisted: date # Datum
citizenrecord: Optional[int] # Integer oder None
languages: List[str] = Field(default_factory=list) # Liste von Strings
class OrgMember(User):
rang: str
star: int
affiliate: bool
class Org(BaseModel):
sid: str
name: str
membercount: int
fokus: List[str] = Field(default_factory=list)
def getOrg(org_id):
"""
@ -6,7 +26,12 @@ def getOrg(org_id):
:param org_id: The ID of the organization.
:return: A dictionary with organization details.
"""
return {"id": org_id, "name": f"Org-{org_id}"}
return Org(
sid=f"org_{org_id}",
name=f"Organization {org_id}",
membercount=42, # Beispielwert
fokus=["Innovation", "Technology"] # Beispiel für Schwerpunkte
)
def getOrgMembers(org_id):
"""
@ -14,7 +39,30 @@ def getOrgMembers(org_id):
:param org_id: The ID of the organization.
:return: A list of dictionaries representing members.
"""
return [{"id": i, "name": f"Member-{i}"} for i in range(1, 6)]
return [
OrgMember(
handle=f"user_{org_id}_1",
name="John Doe",
mainorg=f"org_{org_id}",
enlisted=date(2020, 5, 1),
citizenrecord=101,
languages=["English", "Spanish"],
rang="Senior",
star=5,
affiliate=True
),
OrgMember(
handle=f"user_{org_id}_2",
name="Jane Smith",
mainorg=f"org_{org_id}",
enlisted=date(2021, 7, 15),
citizenrecord=None,
languages=["German"],
rang="Junior",
star=2,
affiliate=False
),
]
def getUser(user_id):
"""
@ -22,4 +70,11 @@ def getUser(user_id):
:param user_id: The ID of the user.
:return: A dictionary with user details.
"""
return {"id": user_id, "name": f"User-{user_id}"}
return User(
handle=f"user_{user_id}",
name=f"User {user_id}",
mainorg="ExampleCorp",
enlisted=date(2023, 1, 15), # Beispiel für ein Datum
citizenrecord=user_id if user_id % 2 == 0 else None, # Integer oder None
languages=["English", "German"]
)