66//
77
88import Foundation
9- import FirebaseFirestore
109
1110struct TodoRequest : Dictionaryable {
1211 let id : String
@@ -23,8 +22,8 @@ struct TodoRequest: Dictionaryable {
2322
2423}
2524
26- struct TodoResponse : Decodable {
27- @ DocumentID var id : String ?
25+ struct TodoResponse {
26+ let id : String ?
2827 let isPinned : Bool
2928 let isCompleted : Bool
3029 let isChecked : Bool
@@ -35,45 +34,4 @@ struct TodoResponse: Decodable {
3534 let dueDate : Date ?
3635 let tags : [ String ]
3736 let kind : String
38-
39- init ? ( from snapshot: QueryDocumentSnapshot ) {
40- self . init ( documentID: snapshot. documentID, data: snapshot. data ( ) )
41- }
42-
43- init ? ( from snapshot: DocumentSnapshot ) {
44- guard let data = snapshot. data ( ) else { return nil }
45- self . init ( documentID: snapshot. documentID, data: data)
46- }
47-
48- private init ? ( documentID: String , data: [ String : Any ] ) {
49- guard
50- let id = documentID as String ? ,
51- let isPinned = data [ " isPinned " ] as? Bool ,
52- let isCompleted = data [ " isCompleted " ] as? Bool ,
53- let isChecked = data [ " isChecked " ] as? Bool ,
54- let title = data [ " title " ] as? String ,
55- let content = data [ " content " ] as? String ,
56- let createdAtTimestamp = data [ " createdAt " ] as? Timestamp ,
57- let updatedAtTimestamp = data [ " updatedAt " ] as? Timestamp ,
58- let tags = data [ " tags " ] as? [ String ] ,
59- let kind = data [ " kind " ] as? String else {
60- return nil
61- }
62- self . id = id
63- self . isPinned = isPinned
64- self . isCompleted = isCompleted
65- self . isChecked = isChecked
66- self . title = title
67- self . content = content
68- self . createdAt = createdAtTimestamp. dateValue ( )
69- self . updatedAt = updatedAtTimestamp. dateValue ( )
70- if let dueDateTimestamp = data [ " dueDate " ] as? Timestamp {
71- self . dueDate = dueDateTimestamp. dateValue ( )
72- } else {
73- self . dueDate = nil
74- }
75- self . tags = tags
76- self . kind = kind
77- }
78-
7937}
0 commit comments