Files
lunasea/lib/core/models/configuration/external_module.dart
Jagandeep Brar 5ab0628e6f feat(Module): External modules support (#462)
* feat(Modules): Created definition for external modules
* feat(External Modules): Added database definitions, base route definition, added to exported config
* tweak(Settings): Updated help information message for external modules
* feat(Settings): Ability to add new external module
* feat(External Modules): Implemented external module list
* feat(Settings): Ability to modify and delete external modules
* feat(Settings): Add hints to external module host dialog
* chore(release): Updated CHANGELOG.md
2021-05-06 02:42:37 -05:00

51 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:lunasea/core.dart';
part 'external_module.g.dart';
/// Hive database object containing all information on an indexer
@HiveType(typeId: 26, adapterName: 'ExternalModuleHiveObjectAdapter')
class ExternalModuleHiveObject extends HiveObject {
/// Create a new [ExternalModuleHiveObject] object with all fields set to empty values('', false, 0, {}, etc.)
factory ExternalModuleHiveObject.empty() => ExternalModuleHiveObject(
displayName: '',
host: '',
);
/// Create a new [ExternalModuleHiveObject] from another [ExternalModuleHiveObject] (deep-copy).
factory ExternalModuleHiveObject.fromExternalModuleHiveObject(
ExternalModuleHiveObject indexer) =>
ExternalModuleHiveObject(
displayName: indexer.displayName,
host: indexer.host,
);
/// Create a new [ExternalModuleHiveObject] from a map where the keys map 1-to-1 except for "key", which was the old key for apiKey.
///
/// - Does _not_ do type checking, and will throw an error if the type is invalid.
/// - If the key is null, sets to the "empty" value
factory ExternalModuleHiveObject.fromMap(Map module) =>
ExternalModuleHiveObject(
displayName: module['displayName'] ?? '',
host: module['host'] ?? '',
);
ExternalModuleHiveObject({
@required this.displayName,
@required this.host,
});
@override
String toString() => toMap().toString();
Map<String, dynamic> toMap() => {
"displayName": displayName ?? '',
"host": host ?? '',
};
@HiveField(0)
String displayName;
@HiveField(1)
String host;
}