magic_metadata.dart 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import 'dart:convert';
  2. const kVisibilityVisible = 0;
  3. const kVisibilityArchive = 1;
  4. const kMagicKeyVisibility = 'visibility';
  5. const kPubMagicKeyEditedTime = 'editedTime';
  6. class MagicMetadata {
  7. // 0 -> visible
  8. // 1 -> archived
  9. // 2 -> hidden etc?
  10. int visibility;
  11. MagicMetadata({this.visibility});
  12. factory MagicMetadata.fromEncodedJson(String encodedJson) =>
  13. MagicMetadata.fromJson(jsonDecode(encodedJson));
  14. factory MagicMetadata.fromJson(dynamic json) =>
  15. MagicMetadata.fromMap(json);
  16. Map<String, dynamic> toJson() {
  17. final map = <String, dynamic>{};
  18. map[kMagicKeyVisibility] = visibility;
  19. return map;
  20. }
  21. factory MagicMetadata.fromMap(Map<String, dynamic> map) {
  22. if (map == null) return null;
  23. return MagicMetadata(
  24. visibility: map[kMagicKeyVisibility] ?? kVisibilityVisible,
  25. );
  26. }
  27. }
  28. class PubMagicMetadata {
  29. int editedTime;
  30. PubMagicMetadata({this.editedTime});
  31. factory PubMagicMetadata.fromEncodedJson(String encodedJson) =>
  32. PubMagicMetadata.fromJson(jsonDecode(encodedJson));
  33. factory PubMagicMetadata.fromJson(dynamic json) =>
  34. PubMagicMetadata.fromMap(json);
  35. Map<String, dynamic> toJson() {
  36. final map = <String, dynamic>{};
  37. map[kPubMagicKeyEditedTime] = editedTime;
  38. return map;
  39. }
  40. factory PubMagicMetadata.fromMap(Map<String, dynamic> map) {
  41. if (map == null) return null;
  42. return PubMagicMetadata(
  43. editedTime: map[kPubMagicKeyEditedTime],
  44. );
  45. }
  46. }