Skip to content

Commit

Permalink
fix: Model converter available for Enum.
Browse files Browse the repository at this point in the history
  • Loading branch information
mathrunet committed Aug 10, 2023
1 parent eac495d commit 4234a5b
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ class FirestoreModelAdapter extends ModelAdapter
const FirestoreModelSearchConverter(),
const FirestoreModelGeoValueConverter(),
const FirestoreModelRefConverter(),
const FirestoreEnumConverter(),
const FirestoreNullConverter(),
const FirestoreBasicConverter(),
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ class ListenableFirestoreModelAdapter extends ModelAdapter
const FirestoreModelSearchConverter(),
const FirestoreModelGeoValueConverter(),
const FirestoreModelRefConverter(),
const FirestoreEnumConverter(),
const FirestoreNullConverter(),
const FirestoreBasicConverter(),
};
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
part of katana_model_firestore;

/// FirestoreConverter for [Enum].
///
/// [Enum]用のFirestoreConverter。
class FirestoreEnumConverter extends FirestoreModelFieldValueConverter {
/// FirestoreConverter for [Enum].
///
/// [Enum]用のFirestoreConverter。
const FirestoreEnumConverter();

@override
String get type => (ModelCounter).toString();

@override
DynamicMap? convertFrom(
String key,
Object? value,
DynamicMap original,
FirestoreModelAdapterBase adapter,
) =>
null;

@override
DynamicMap? convertTo(
String key,
Object? value,
DynamicMap original,
FirestoreModelAdapterBase adapter,
) =>
null;

@override
Object? convertQueryValue(
Object? value,
ModelQueryFilter filter,
ModelAdapterCollectionQuery query,
FirestoreModelAdapterBase adapter,
) {
return (filter.value as Enum).name;
}

@override
bool enabledQuery(
Object? value,
ModelQueryFilter filter,
ModelAdapterCollectionQuery query,
FirestoreModelAdapterBase adapter,
) {
return value is Enum;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ part 'converter/firestore_model_geo_value_converter.dart';
part 'converter/firestore_model_search_converter.dart';
part 'converter/firestore_model_ref_converter.dart';
part 'converter/firestore_null_converter.dart';
part 'converter/firestore_enum_converter.dart';
part 'converter/firestore_basic_converter.dart';

part 'adapter/listenable_firestore_model_adapter.dart';
Expand Down
14 changes: 7 additions & 7 deletions packages/katana_model_firestore/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ packages:
dependency: transitive
description:
name: asn1lib
sha256: b74e3842a52c61f8819a1ec8444b4de5419b41a7465e69d4aa681445377398b0
sha256: "21afe4333076c02877d14f4a89df111e658a6d466cbfc802eb705eb91bd5adfd"
url: "https://pub.dev"
source: hosted
version: "1.4.1"
version: "1.5.0"
async:
dependency: transitive
description:
Expand Down Expand Up @@ -77,10 +77,10 @@ packages:
dependency: "direct main"
description:
name: cloud_firestore
sha256: "035b91f66b60dab5eefcc217accc734020234f79d963b075699920b95334a755"
sha256: f1a06ad4499ed9ab73703560d44893e6b9e66ce3923c9121f4ef3981c972057f
url: "https://pub.dev"
source: hosted
version: "4.8.3"
version: "4.8.4"
cloud_firestore_platform_interface:
dependency: transitive
description:
Expand Down Expand Up @@ -292,7 +292,7 @@ packages:
path: "../katana_model"
relative: true
source: path
version: "2.10.8"
version: "2.11.4"
lints:
dependency: transitive
description:
Expand Down Expand Up @@ -574,10 +574,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: ada49637c27973c183dad90beb6bd781eea4c9f5f955d35da172de0af7bd3440
sha256: "0fae432c85c4ea880b33b497d32824b97795b04cdaa74d270219572a1f50268d"
url: "https://pub.dev"
source: hosted
version: "11.8.0"
version: "11.9.0"
watcher:
dependency: transitive
description:
Expand Down

0 comments on commit 4234a5b

Please sign in to comment.