getEntityData static method

dynamic getEntityData({
  1. required List<Column> columns,
  2. required Map<String, dynamic> objectMap,
  3. required ClassMirror classMirror,
})

Implementation

static getEntityData(
    {required List<Column> columns,
    required Map<String, dynamic> objectMap,
    required ClassMirror classMirror}) {
  Map<String, dynamic> resultMap = {};

  columns.forEach((column) {
    var value = objectMap[column.name];

    if (value.runtimeType == int && column.type == ColumnType.BOOLEAN) {
      resultMap[column.name as String] = value == 1 ? true : false;
    } else if (value.runtimeType == String &&
        column.type == ColumnType.BOOLEAN) {
      resultMap[column.name as String] = value == "1" ? true : false;
    } else if (column.relation != null) {
      resultMap[column.name as String] =
          column.relation?.relationType == RelationType.OneToMany
              ? RepositoryUtil.getRelationObject(
                  relation: column.relation as ColumnRelation, value: value)
              : value;
    } else {
      resultMap[column.name as String] = value;
    }
  });

  if (resultMap['dirty']) {
    resultMap['skipDateUpdate'] = true;
  }

  return classMirror.newInstance('fromJson', [resultMap]);
}