TF-1204 Add firebase object and capability

This commit is contained in:
dab246
2022-11-15 15:41:59 +07:00
committed by Dat H. Pham
parent dcdec54dd9
commit d42f44b870
14 changed files with 551 additions and 0 deletions
@@ -0,0 +1,12 @@
import 'package:fcm/model/device_client_id.dart';
import 'package:json_annotation/json_annotation.dart';
class DeviceClientIdNullableConverter implements JsonConverter<DeviceClientId?, String?> {
const DeviceClientIdNullableConverter();
@override
DeviceClientId? fromJson(String? json) => json != null ? DeviceClientId(json) : null;
@override
String? toJson(DeviceClientId? object) => object?.value;
}
@@ -0,0 +1,20 @@
import 'package:fcm/model/firebase_expired_time.dart';
import 'package:jmap_dart_client/http/converter/utc_date_converter.dart';
import 'package:jmap_dart_client/http/converter/utc_date_nullable_converter.dart';
import 'package:json_annotation/json_annotation.dart';
class FirebaseExpiredTimeNullableConverter implements JsonConverter<FirebaseExpiredTime?, String?> {
const FirebaseExpiredTimeNullableConverter();
@override
FirebaseExpiredTime? fromJson(String? json) {
if (json != null) {
return FirebaseExpiredTime(const UTCDateConverter().fromJson(json));
} else {
return null;
}
}
@override
String? toJson(FirebaseExpiredTime? object) => const UTCDateNullableConverter().toJson(object?.value);
}
@@ -0,0 +1,13 @@
import 'package:fcm/model/firebase_registration_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:json_annotation/json_annotation.dart';
class FirebaseRegistrationIdNullableConverter implements JsonConverter<FirebaseRegistrationId?, String?> {
const FirebaseRegistrationIdNullableConverter();
@override
FirebaseRegistrationId? fromJson(String? json) => json != null ? FirebaseRegistrationId(Id(json)) : null;
@override
String? toJson(FirebaseRegistrationId? object) => object?.id.value;
}
@@ -0,0 +1,12 @@
import 'package:fcm/model/firebase_token.dart';
import 'package:json_annotation/json_annotation.dart';
class FirebaseTokenNullableConverter implements JsonConverter<FirebaseToken?, String?> {
const FirebaseTokenNullableConverter();
@override
FirebaseToken? fromJson(String? json) => json != null ? FirebaseToken(json) : null;
@override
String? toJson(FirebaseToken? object) => object?.value;
}
@@ -0,0 +1,12 @@
import 'package:fcm/model/type_name.dart';
import 'package:json_annotation/json_annotation.dart';
class TypeNameConverter implements JsonConverter<TypeName, String> {
const TypeNameConverter();
@override
TypeName fromJson(String json) => TypeName(json);
@override
String toJson(TypeName object) => object.value;
}