@@ -447,22 +447,24 @@ private extension TodoService {
447447
448448 func makeResponse( documentID: String , data: [ String : Any ] ) -> TodoResponse ? {
449449 guard
450- let isPinned = data [ TodoFieldKey . isPinned. rawValue] as? Bool ,
451- let isCompleted = data [ TodoFieldKey . isCompleted. rawValue] as? Bool ,
452- let isChecked = data [ TodoFieldKey . isChecked. rawValue] as? Bool ,
453450 let number = data [ TodoFieldKey . number. rawValue] as? Int ,
454451 let title = data [ TodoFieldKey . title. rawValue] as? String ,
455- let content = data [ TodoFieldKey . content. rawValue] as? String ,
456452 let createdAtTimestamp = data [ TodoFieldKey . createdAt. rawValue] as? Timestamp ,
457453 let updatedAtTimestamp = data [ TodoFieldKey . updatedAt. rawValue] as? Timestamp ,
458- let tags = data [ TodoFieldKey . tags. rawValue] as? [ String ] ,
459454 let category = data [ TodoFieldKey . category. rawValue] as? String else {
460455 return nil
461456 }
462457
463458 let completedAt = ( data [ TodoFieldKey . completedAt. rawValue] as? Timestamp ) ? . dateValue ( )
464459 let deletedAt = ( data [ TodoFieldKey . deletedAt. rawValue] as? Timestamp ) ? . dateValue ( )
465460 let dueDate = ( data [ TodoFieldKey . dueDate. rawValue] as? Timestamp ) ? . dateValue ( )
461+
462+ let isPinned = data [ TodoFieldKey . isPinned. rawValue] as? Bool ?? false
463+ let isCompleted = data [ TodoFieldKey . isCompleted. rawValue] as? Bool ?? ( completedAt != nil )
464+ let isChecked = data [ TodoFieldKey . isChecked. rawValue] as? Bool ?? false
465+ let content = data [ TodoFieldKey . content. rawValue] as? String ?? " "
466+ let tags = data [ TodoFieldKey . tags. rawValue] as? [ String ] ?? [ ]
467+
466468 return TodoResponse (
467469 id: documentID,
468470 isPinned: isPinned,
0 commit comments