toMap method Null safety

Map<String, dynamic> toMap()

Convert a Statement back to its Map representation.

Implementation

Map<String, dynamic> toMap() {
  Map<String, dynamic> vars = {
    "fields": {
      DbFields.statementText: statementText,
      DbFields.statementYear: statementYear,
      DbFields.statementMonth: statementMonth,
      DbFields.statementDay: statementDay,
      DbFields.statementCorrectness: statementCorrectness,
      DbFields.statementMedia: statementMedia,
      DbFields.statementLanguage: statementLanguage,
      DbFields.statementCategory: statementCategory,
      DbFields.statementMediatype: statementMediatype,
      DbFields.statementAuthor: statementAuthor,
      DbFields.statementLink: statementLink,
      DbFields.statementRectification: statementRectification,
      DbFields.statementPictureCopyright: samplePictureCopyright,
    }
  };

  if (uploadImage != null) {
    MultipartFile multipartFile = MultipartFile.fromBytes(
      DbFields.statementPicture,
      uploadImage!.toList(),
      filename: '${DateTime.now().second}.jpg',
      contentType: MediaType("image", "jpg"),
    );
    vars["fields"][DbFields.statementPictureFile] = {"upload": multipartFile};
  }

  //add factchecks if not empty
  if (statementFactchecks.facts.isNotEmpty) {
    vars["fields"][DbFields.statementFactcheckIDs] = {};
    vars["fields"][DbFields.statementFactcheckIDs]["createAndAdd"] =
        statementFactchecks.toMap();
  }
  //add object id if we want to update statements
  if (objectId != null) {
    vars["id"] = objectId;
  }
  return vars;
}