From a1b21892e8d5588488deeb36ae8d66c4af58950a Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Wed, 24 May 2023 17:48:11 +0530 Subject: [PATCH] fix(llc, persistence): remove default value of user.createdAt, updatedAt. Signed-off-by: xsahil03x --- .../stream_chat/lib/src/core/models/user.dart | 11 ++-- .../lib/src/db/drift_chat_database.g.dart | 56 +++++++++---------- .../lib/src/entity/users.dart | 4 +- .../test/src/mapper/user_mapper_test.dart | 2 +- .../test/src/utils/date_matcher.dart | 19 ++++--- 5 files changed, 46 insertions(+), 46 deletions(-) diff --git a/packages/stream_chat/lib/src/core/models/user.dart b/packages/stream_chat/lib/src/core/models/user.dart index a280d18c..dd0b7704 100644 --- a/packages/stream_chat/lib/src/core/models/user.dart +++ b/packages/stream_chat/lib/src/core/models/user.dart @@ -35,8 +35,8 @@ class User extends Equatable { this.role, String? name, String? image, - DateTime? createdAt, - DateTime? updatedAt, + this.createdAt, + this.updatedAt, this.lastActive, Map extraData = const {}, this.online = false, @@ -44,8 +44,7 @@ class User extends Equatable { this.banExpires, this.teams = const [], this.language, - }) : createdAt = createdAt ?? DateTime.now(), - updatedAt = updatedAt ?? DateTime.now(), + }) : // For backwards compatibility, set 'name', 'image' in [extraData]. extraData = { ...extraData, @@ -104,11 +103,11 @@ class User extends Equatable { /// Date of user creation. @JsonKey(includeToJson: false) - final DateTime createdAt; + final DateTime? createdAt; /// Date of last user update. @JsonKey(includeToJson: false) - final DateTime updatedAt; + final DateTime? updatedAt; /// Date of last user connection. @JsonKey(includeToJson: false) diff --git a/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart b/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart index 6f8b0e31..0dcd0107 100644 --- a/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart +++ b/packages/stream_chat_persistence/lib/src/db/drift_chat_database.g.dart @@ -3651,18 +3651,14 @@ class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> { const VerificationMeta('createdAt'); @override late final GeneratedColumn createdAt = GeneratedColumn( - 'created_at', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime); + 'created_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); static const VerificationMeta _updatedAtMeta = const VerificationMeta('updatedAt'); @override late final GeneratedColumn updatedAt = GeneratedColumn( - 'updated_at', aliasedName, false, - type: DriftSqlType.dateTime, - requiredDuringInsert: false, - defaultValue: currentDateAndTime); + 'updated_at', aliasedName, true, + type: DriftSqlType.dateTime, requiredDuringInsert: false); static const VerificationMeta _lastActiveMeta = const VerificationMeta('lastActive'); @override @@ -3773,9 +3769,9 @@ class $UsersTable extends Users with TableInfo<$UsersTable, UserEntity> { language: attachedDatabase.typeMapping .read(DriftSqlType.string, data['${effectivePrefix}language']), createdAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at'])!, + .read(DriftSqlType.dateTime, data['${effectivePrefix}created_at']), updatedAt: attachedDatabase.typeMapping - .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at'])!, + .read(DriftSqlType.dateTime, data['${effectivePrefix}updated_at']), lastActive: attachedDatabase.typeMapping .read(DriftSqlType.dateTime, data['${effectivePrefix}last_active']), online: attachedDatabase.typeMapping @@ -3808,10 +3804,10 @@ class UserEntity extends DataClass implements Insertable { final String? language; /// Date of user creation - final DateTime createdAt; + final DateTime? createdAt; /// Date of last user update - final DateTime updatedAt; + final DateTime? updatedAt; /// Date of last user connection final DateTime? lastActive; @@ -3828,8 +3824,8 @@ class UserEntity extends DataClass implements Insertable { {required this.id, this.role, this.language, - required this.createdAt, - required this.updatedAt, + this.createdAt, + this.updatedAt, this.lastActive, required this.online, required this.banned, @@ -3844,8 +3840,12 @@ class UserEntity extends DataClass implements Insertable { if (!nullToAbsent || language != null) { map['language'] = Variable(language); } - map['created_at'] = Variable(createdAt); - map['updated_at'] = Variable(updatedAt); + if (!nullToAbsent || createdAt != null) { + map['created_at'] = Variable(createdAt); + } + if (!nullToAbsent || updatedAt != null) { + map['updated_at'] = Variable(updatedAt); + } if (!nullToAbsent || lastActive != null) { map['last_active'] = Variable(lastActive); } @@ -3865,8 +3865,8 @@ class UserEntity extends DataClass implements Insertable { id: serializer.fromJson(json['id']), role: serializer.fromJson(json['role']), language: serializer.fromJson(json['language']), - createdAt: serializer.fromJson(json['createdAt']), - updatedAt: serializer.fromJson(json['updatedAt']), + createdAt: serializer.fromJson(json['createdAt']), + updatedAt: serializer.fromJson(json['updatedAt']), lastActive: serializer.fromJson(json['lastActive']), online: serializer.fromJson(json['online']), banned: serializer.fromJson(json['banned']), @@ -3880,8 +3880,8 @@ class UserEntity extends DataClass implements Insertable { 'id': serializer.toJson(id), 'role': serializer.toJson(role), 'language': serializer.toJson(language), - 'createdAt': serializer.toJson(createdAt), - 'updatedAt': serializer.toJson(updatedAt), + 'createdAt': serializer.toJson(createdAt), + 'updatedAt': serializer.toJson(updatedAt), 'lastActive': serializer.toJson(lastActive), 'online': serializer.toJson(online), 'banned': serializer.toJson(banned), @@ -3893,8 +3893,8 @@ class UserEntity extends DataClass implements Insertable { {String? id, Value role = const Value.absent(), Value language = const Value.absent(), - DateTime? createdAt, - DateTime? updatedAt, + Value createdAt = const Value.absent(), + Value updatedAt = const Value.absent(), Value lastActive = const Value.absent(), bool? online, bool? banned, @@ -3903,8 +3903,8 @@ class UserEntity extends DataClass implements Insertable { id: id ?? this.id, role: role.present ? role.value : this.role, language: language.present ? language.value : this.language, - createdAt: createdAt ?? this.createdAt, - updatedAt: updatedAt ?? this.updatedAt, + createdAt: createdAt.present ? createdAt.value : this.createdAt, + updatedAt: updatedAt.present ? updatedAt.value : this.updatedAt, lastActive: lastActive.present ? lastActive.value : this.lastActive, online: online ?? this.online, banned: banned ?? this.banned, @@ -3948,8 +3948,8 @@ class UsersCompanion extends UpdateCompanion { final Value id; final Value role; final Value language; - final Value createdAt; - final Value updatedAt; + final Value createdAt; + final Value updatedAt; final Value lastActive; final Value online; final Value banned; @@ -4010,8 +4010,8 @@ class UsersCompanion extends UpdateCompanion { {Value? id, Value? role, Value? language, - Value? createdAt, - Value? updatedAt, + Value? createdAt, + Value? updatedAt, Value? lastActive, Value? online, Value? banned, diff --git a/packages/stream_chat_persistence/lib/src/entity/users.dart b/packages/stream_chat_persistence/lib/src/entity/users.dart index a5db56cc..56b22e70 100644 --- a/packages/stream_chat_persistence/lib/src/entity/users.dart +++ b/packages/stream_chat_persistence/lib/src/entity/users.dart @@ -15,10 +15,10 @@ class Users extends Table { TextColumn get language => text().nullable()(); /// Date of user creation - DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)(); + DateTimeColumn get createdAt => dateTime().nullable()(); /// Date of last user update - DateTimeColumn get updatedAt => dateTime().withDefault(currentDateAndTime)(); + DateTimeColumn get updatedAt => dateTime().nullable()(); /// Date of last user connection DateTimeColumn get lastActive => dateTime().nullable()(); diff --git a/packages/stream_chat_persistence/test/src/mapper/user_mapper_test.dart b/packages/stream_chat_persistence/test/src/mapper/user_mapper_test.dart index 8f9340a9..eef6aadb 100644 --- a/packages/stream_chat_persistence/test/src/mapper/user_mapper_test.dart +++ b/packages/stream_chat_persistence/test/src/mapper/user_mapper_test.dart @@ -27,7 +27,7 @@ void main() { expect(user.language, entity.language); expect(user.createdAt, isSameDateAs(entity.createdAt)); expect(user.updatedAt, isSameDateAs(entity.updatedAt)); - expect(user.lastActive, isSameDateAs(entity.lastActive!)); + expect(user.lastActive, isSameDateAs(entity.lastActive)); expect(user.online, entity.online); expect(user.banned, entity.banned); expect(user.extraData, entity.extraData); diff --git a/packages/stream_chat_persistence/test/src/utils/date_matcher.dart b/packages/stream_chat_persistence/test/src/utils/date_matcher.dart index 5f55f46a..d19d25f2 100644 --- a/packages/stream_chat_persistence/test/src/utils/date_matcher.dart +++ b/packages/stream_chat_persistence/test/src/utils/date_matcher.dart @@ -1,21 +1,22 @@ import 'package:flutter_test/flutter_test.dart'; -Matcher isSameDateAs(DateTime targetDate) => +Matcher isSameDateAs(DateTime? targetDate) => _IsSameDateAs(targetDate: targetDate); class _IsSameDateAs extends Matcher { const _IsSameDateAs({required this.targetDate}); - final DateTime targetDate; + final DateTime? targetDate; @override - bool matches(covariant DateTime date, Map matchState) => - date.year == targetDate.year && - date.month == targetDate.month && - date.day == targetDate.day && - date.hour == targetDate.hour && - date.minute == targetDate.minute && - date.second == targetDate.second; + bool matches(covariant DateTime date, Map matchState) { + return date.year == targetDate?.year && + date.month == targetDate?.month && + date.day == targetDate?.day && + date.hour == targetDate?.hour && + date.minute == targetDate?.minute && + date.second == targetDate?.second; + } @override Description describe(Description description) =>