read and create generic strategy
This commit is contained in:
+32
-3
@@ -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')
|
||||
}
|
||||
Reference in New Issue
Block a user