read and create generic strategy

This commit is contained in:
null
2024-03-08 09:37:27 +01:00
parent 0122e9ed54
commit 1c22fb7b34
4 changed files with 150 additions and 48 deletions
+32 -3
View File
@@ -1,11 +1,13 @@
from dataclasses import dataclass
from dataclasses import dataclass, fields
from datetime import datetime
from typing import Optional
@dataclass
class Strategy():
id: str
enabled: bool
fulfilled: bool
created: str
createdAt: Optional[str]
@classmethod
def get_table_name(cls):
@@ -13,4 +15,31 @@ class Strategy():
@classmethod
def get_route_prefix(cls):
return "/strategies/" + cls.__name__.lower()
return "/strategies/" + cls.__name__.lower()
@staticmethod
def get_computed_properties():
return ["id", "createdAt"]
@staticmethod
def compute_properties():
return {
"createdAt": datetime.utcnow().isoformat() + "Z"
}
@classmethod
def get_order(cls):
return [field.name for field in fields(cls)]
@classmethod
def format(cls, fields):
for key, value in fields.items():
if key in cls.get_formatters():
fields[key] = cls.get_formatters()[key](value)
return fields
@staticmethod
def get_formatters():
return {
"createdAt": lambda str: datetime.fromisoformat(str).strftime('%Y-%m-%d %H:%M')
}