5
5
from typing import Optional , Dict , Any
6
6
7
7
from notubiz .api ._helpers import parse_date , get_attribute , get_title , get_description
8
- from notubiz .api .document import Document , NotubizDocument
8
+ from notubiz .api .dataclasses . document import Document
9
9
10
10
@define
11
11
class AgendaItem :
@@ -19,6 +19,18 @@ class AgendaItem:
19
19
documents : list [Document ]
20
20
agenda_items : list ['AgendaItem' ] = field (factory = list )
21
21
22
+ class AgendaItems :
23
+ @staticmethod
24
+ def from_json (json_object : any ) -> list [AgendaItem ]:
25
+ c = cattrs .Converter ()
26
+
27
+ c .register_structure_hook (datetime , lambda date_string , _ : parse_date (date_string ))
28
+ c .register_structure_hook (AgendaItem , agenda_item_structure_hook )
29
+
30
+ agenda_items = [c .structure (item , AgendaItem ) for item in json_object ]
31
+
32
+ return agenda_items
33
+
22
34
23
35
def get_start_date (attributes ) -> datetime :
24
36
try :
@@ -36,8 +48,8 @@ def agenda_item_structure_hook(data: Dict[str, Any], cls: type) -> AgendaItem:
36
48
type_data = data .get ("type_data" , {})
37
49
attributes = type_data ["attributes" ]
38
50
39
- documents = [NotubizDocument .from_json (item ) for item in data ["documents" ]]
40
- agenda_items = NotubizAgendaItems .from_json (data ["agenda_items" ])
51
+ documents = [Document .from_json (item ) for item in data ["documents" ]]
52
+ agenda_items = AgendaItems .from_json (data ["agenda_items" ])
41
53
42
54
return AgendaItem (
43
55
id = data ["id" ],
@@ -51,15 +63,3 @@ def agenda_item_structure_hook(data: Dict[str, Any], cls: type) -> AgendaItem:
51
63
agenda_items = agenda_items
52
64
)
53
65
54
-
55
- class NotubizAgendaItems :
56
- def from_json (json_object : any ) -> list [AgendaItem ]:
57
- c = cattrs .Converter ()
58
-
59
- c .register_structure_hook (datetime , lambda date_string , _ : parse_date (date_string ))
60
- c .register_structure_hook (AgendaItem , agenda_item_structure_hook )
61
-
62
- agenda_items = [c .structure (item , AgendaItem ) for item in json_object ]
63
-
64
- return agenda_items
65
-
0 commit comments