You've already forked immich
mirror of
https://github.com/immich-app/immich.git
synced 2025-07-14 07:04:24 +02:00
refactor: deduplicate MemoryType and ReactionType enums (#11479)
* refactor: deduplicate memorytype and reactiontype enums * fix mobile
This commit is contained in:
78
mobile/openapi/lib/model/activity_response_dto.dart
generated
78
mobile/openapi/lib/model/activity_response_dto.dart
generated
@ -29,7 +29,7 @@ class ActivityResponseDto {
|
||||
|
||||
String id;
|
||||
|
||||
ActivityResponseDtoTypeEnum type;
|
||||
ReactionType type;
|
||||
|
||||
UserResponseDto user;
|
||||
|
||||
@ -86,7 +86,7 @@ class ActivityResponseDto {
|
||||
comment: mapValueOfType<String>(json, r'comment'),
|
||||
createdAt: mapDateTime(json, r'createdAt', r'')!,
|
||||
id: mapValueOfType<String>(json, r'id')!,
|
||||
type: ActivityResponseDtoTypeEnum.fromJson(json[r'type'])!,
|
||||
type: ReactionType.fromJson(json[r'type'])!,
|
||||
user: UserResponseDto.fromJson(json[r'user'])!,
|
||||
);
|
||||
}
|
||||
@ -143,77 +143,3 @@ class ActivityResponseDto {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
class ActivityResponseDtoTypeEnum {
|
||||
/// Instantiate a new enum with the provided [value].
|
||||
const ActivityResponseDtoTypeEnum._(this.value);
|
||||
|
||||
/// The underlying value of this enum member.
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
|
||||
String toJson() => value;
|
||||
|
||||
static const comment = ActivityResponseDtoTypeEnum._(r'comment');
|
||||
static const like = ActivityResponseDtoTypeEnum._(r'like');
|
||||
|
||||
/// List of all possible values in this [enum][ActivityResponseDtoTypeEnum].
|
||||
static const values = <ActivityResponseDtoTypeEnum>[
|
||||
comment,
|
||||
like,
|
||||
];
|
||||
|
||||
static ActivityResponseDtoTypeEnum? fromJson(dynamic value) => ActivityResponseDtoTypeEnumTypeTransformer().decode(value);
|
||||
|
||||
static List<ActivityResponseDtoTypeEnum> listFromJson(dynamic json, {bool growable = false,}) {
|
||||
final result = <ActivityResponseDtoTypeEnum>[];
|
||||
if (json is List && json.isNotEmpty) {
|
||||
for (final row in json) {
|
||||
final value = ActivityResponseDtoTypeEnum.fromJson(row);
|
||||
if (value != null) {
|
||||
result.add(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result.toList(growable: growable);
|
||||
}
|
||||
}
|
||||
|
||||
/// Transformation class that can [encode] an instance of [ActivityResponseDtoTypeEnum] to String,
|
||||
/// and [decode] dynamic data back to [ActivityResponseDtoTypeEnum].
|
||||
class ActivityResponseDtoTypeEnumTypeTransformer {
|
||||
factory ActivityResponseDtoTypeEnumTypeTransformer() => _instance ??= const ActivityResponseDtoTypeEnumTypeTransformer._();
|
||||
|
||||
const ActivityResponseDtoTypeEnumTypeTransformer._();
|
||||
|
||||
String encode(ActivityResponseDtoTypeEnum data) => data.value;
|
||||
|
||||
/// Decodes a [dynamic value][data] to a ActivityResponseDtoTypeEnum.
|
||||
///
|
||||
/// If [allowNull] is true and the [dynamic value][data] cannot be decoded successfully,
|
||||
/// then null is returned. However, if [allowNull] is false and the [dynamic value][data]
|
||||
/// cannot be decoded successfully, then an [UnimplementedError] is thrown.
|
||||
///
|
||||
/// The [allowNull] is very handy when an API changes and a new enum value is added or removed,
|
||||
/// and users are still using an old app with the old code.
|
||||
ActivityResponseDtoTypeEnum? decode(dynamic data, {bool allowNull = true}) {
|
||||
if (data != null) {
|
||||
switch (data) {
|
||||
case r'comment': return ActivityResponseDtoTypeEnum.comment;
|
||||
case r'like': return ActivityResponseDtoTypeEnum.like;
|
||||
default:
|
||||
if (!allowNull) {
|
||||
throw ArgumentError('Unknown enum value to decode: $data');
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// Singleton [ActivityResponseDtoTypeEnumTypeTransformer] instance.
|
||||
static ActivityResponseDtoTypeEnumTypeTransformer? _instance;
|
||||
}
|
||||
|
||||
|
||||
|
75
mobile/openapi/lib/model/memory_response_dto.dart
generated
75
mobile/openapi/lib/model/memory_response_dto.dart
generated
@ -56,7 +56,7 @@ class MemoryResponseDto {
|
||||
///
|
||||
DateTime? seenAt;
|
||||
|
||||
MemoryResponseDtoTypeEnum type;
|
||||
MemoryType type;
|
||||
|
||||
DateTime updatedAt;
|
||||
|
||||
@ -133,7 +133,7 @@ class MemoryResponseDto {
|
||||
memoryAt: mapDateTime(json, r'memoryAt', r'')!,
|
||||
ownerId: mapValueOfType<String>(json, r'ownerId')!,
|
||||
seenAt: mapDateTime(json, r'seenAt', r''),
|
||||
type: MemoryResponseDtoTypeEnum.fromJson(json[r'type'])!,
|
||||
type: MemoryType.fromJson(json[r'type'])!,
|
||||
updatedAt: mapDateTime(json, r'updatedAt', r'')!,
|
||||
);
|
||||
}
|
||||
@ -194,74 +194,3 @@ class MemoryResponseDto {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
class MemoryResponseDtoTypeEnum {
|
||||
/// Instantiate a new enum with the provided [value].
|
||||
const MemoryResponseDtoTypeEnum._(this.value);
|
||||
|
||||
/// The underlying value of this enum member.
|
||||
final String value;
|
||||
|
||||
@override
|
||||
String toString() => value;
|
||||
|
||||
String toJson() => value;
|
||||
|
||||
static const onThisDay = MemoryResponseDtoTypeEnum._(r'on_this_day');
|
||||
|
||||
/// List of all possible values in this [enum][MemoryResponseDtoTypeEnum].
|
||||
static const values = <MemoryResponseDtoTypeEnum>[
|
||||
onThisDay,
|
||||
];
|
||||
|
||||
static MemoryResponseDtoTypeEnum? fromJson(dynamic value) => MemoryResponseDtoTypeEnumTypeTransformer().decode(value);
|
||||
|
||||
static List<MemoryResponseDtoTypeEnum> listFromJson(dynamic json, {bool growable = false,}) {
|
||||
final result = <MemoryResponseDtoTypeEnum>[];
|
||||
if (json is List && json.isNotEmpty) {
|
||||
for (final row in json) {
|
||||
final value = MemoryResponseDtoTypeEnum.fromJson(row);
|
||||
if (value != null) {
|
||||
result.add(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result.toList(growable: growable);
|
||||
}
|
||||
}
|
||||
|
||||
/// Transformation class that can [encode] an instance of [MemoryResponseDtoTypeEnum] to String,
|
||||
/// and [decode] dynamic data back to [MemoryResponseDtoTypeEnum].
|
||||
class MemoryResponseDtoTypeEnumTypeTransformer {
|
||||
factory MemoryResponseDtoTypeEnumTypeTransformer() => _instance ??= const MemoryResponseDtoTypeEnumTypeTransformer._();
|
||||
|
||||
const MemoryResponseDtoTypeEnumTypeTransformer._();
|
||||
|
||||
String encode(MemoryResponseDtoTypeEnum data) => data.value;
|
||||
|
||||
/// Decodes a [dynamic value][data] to a MemoryResponseDtoTypeEnum.
|
||||
///
|
||||
/// If [allowNull] is true and the [dynamic value][data] cannot be decoded successfully,
|
||||
/// then null is returned. However, if [allowNull] is false and the [dynamic value][data]
|
||||
/// cannot be decoded successfully, then an [UnimplementedError] is thrown.
|
||||
///
|
||||
/// The [allowNull] is very handy when an API changes and a new enum value is added or removed,
|
||||
/// and users are still using an old app with the old code.
|
||||
MemoryResponseDtoTypeEnum? decode(dynamic data, {bool allowNull = true}) {
|
||||
if (data != null) {
|
||||
switch (data) {
|
||||
case r'on_this_day': return MemoryResponseDtoTypeEnum.onThisDay;
|
||||
default:
|
||||
if (!allowNull) {
|
||||
throw ArgumentError('Unknown enum value to decode: $data');
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// Singleton [MemoryResponseDtoTypeEnumTypeTransformer] instance.
|
||||
static MemoryResponseDtoTypeEnumTypeTransformer? _instance;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user