Support for policies (ro)

This commit is contained in:
2024-10-04 12:57:12 +02:00
parent db7be9e8e1
commit 075b8767e6
6 changed files with 403 additions and 112 deletions

View File

@ -1,8 +1,11 @@
from typing import Optional, List
from pydantic import BaseModel, Field, computed_field
from typing import Optional, List, Union
from pydantic import BaseModel, Field, computed_field, field_serializer, field_validator, model_serializer
from datetime import datetime, timezone, timedelta
from enum import Enum
import json
import pyjson5
class v1RegisterMethod(str, Enum):
@ -58,6 +61,26 @@ class v1User(BaseModel):
createdAt: datetime = Field(alias="createdAt", default=None)
class v1Policy(BaseModel):
policy: dict = Field(alias="policy", default=None)
updatedAt: datetime = Field(alias="updatedAt", default=None)
@field_validator("policy", mode="before")
@classmethod
def json_to_dict(cls, v: str):
pydict = pyjson5.loads(v)
return pydict
@property
def minjson(self) -> str:
return json.dumps(self.policy)
@property
def json(self) -> str:
return json.dumps(self.policy, indent=2)
class v1Node(BaseModel):
"""
None model