Add get detail of a resource to API; remove the dependency of the domain in the view...
[pti/o2.git] / o2common / domain / base.py
index dfd4b25..63d1659 100644 (file)
 \r
 from datetime import datetime\r
 from typing import List\r
+from sqlalchemy.inspection import inspect\r
 from .events import Event\r
 \r
 \r
 class AgRoot:\r
+\r
     def __init__(self) -> None:\r
         self.hash = ""\r
         self.updatetime = datetime.now()\r
         self.createtime = datetime.now()\r
         self.events = []  # type: List[Event]\r
         # self.id = ""\r
+\r
+\r
+class Serializer(object):\r
+\r
+    def serialize(self):\r
+        # d = {c: getattr(self, c) for c in inspect(self).attrs.keys()}\r
+        # if 'createtime' in d:\r
+        #     d['createtime'] = d['createtime'].isoformat()\r
+        # if 'updatetime' in d:\r
+        #     d['updatetime'] = d['updatetime'].isoformat()\r
+        # return d\r
+        return {c: getattr(self, c) for c in inspect(self).attrs.keys()}\r
+\r
+    @staticmethod\r
+    def serialize_list(li):\r
+        return [m.serialize() for m in li]\r