114 lines
2.9 KiB
Dart
114 lines
2.9 KiB
Dart
import 'package:hive_flutter/hive_flutter.dart';
|
|
|
|
part 'keytoken.g.dart';
|
|
|
|
@HiveType(typeId: 107)
|
|
class KeyToken {
|
|
@HiveField(0)
|
|
final String keytokenID;
|
|
|
|
@HiveField(10)
|
|
final String name;
|
|
@HiveField(11)
|
|
final String timestampCreated;
|
|
@HiveField(13)
|
|
final String? timestampLastUsed;
|
|
@HiveField(14)
|
|
final String ownerUserID;
|
|
@HiveField(15)
|
|
final bool allChannels;
|
|
@HiveField(16)
|
|
final List<String> channels;
|
|
@HiveField(17)
|
|
final String permissions;
|
|
@HiveField(18)
|
|
final int messagesSent;
|
|
|
|
const KeyToken({
|
|
required this.keytokenID,
|
|
required this.name,
|
|
required this.timestampCreated,
|
|
required this.timestampLastUsed,
|
|
required this.ownerUserID,
|
|
required this.allChannels,
|
|
required this.channels,
|
|
required this.permissions,
|
|
required this.messagesSent,
|
|
});
|
|
|
|
factory KeyToken.fromJson(Map<String, dynamic> json) {
|
|
return KeyToken(
|
|
keytokenID: json['keytoken_id'] as String,
|
|
name: json['name'] as String,
|
|
timestampCreated: json['timestamp_created'] as String,
|
|
timestampLastUsed: json['timestamp_lastused'] as String?,
|
|
ownerUserID: json['owner_user_id'] as String,
|
|
allChannels: json['all_channels'] as bool,
|
|
channels: (json['channels'] as List<dynamic>).map((e) => e as String).toList(),
|
|
permissions: json['permissions'] as String,
|
|
messagesSent: json['messages_sent'] as int,
|
|
);
|
|
}
|
|
|
|
static List<KeyToken> fromJsonArray(List<dynamic> jsonArr) {
|
|
return jsonArr.map<KeyToken>((e) => KeyToken.fromJson(e as Map<String, dynamic>)).toList();
|
|
}
|
|
|
|
KeyTokenPreview toPreview() {
|
|
return KeyTokenPreview(
|
|
keytokenID: keytokenID,
|
|
name: name,
|
|
ownerUserID: ownerUserID,
|
|
allChannels: allChannels,
|
|
channels: channels,
|
|
permissions: permissions,
|
|
);
|
|
}
|
|
}
|
|
|
|
class KeyTokenWithToken {
|
|
final KeyToken keyToken;
|
|
final String token;
|
|
|
|
KeyTokenWithToken({
|
|
required this.keyToken,
|
|
required this.token,
|
|
});
|
|
|
|
factory KeyTokenWithToken.fromJson(Map<String, dynamic> json) {
|
|
return KeyTokenWithToken(
|
|
keyToken: KeyToken.fromJson(json),
|
|
token: json['token'] as String,
|
|
);
|
|
}
|
|
}
|
|
|
|
class KeyTokenPreview {
|
|
final String keytokenID;
|
|
final String name;
|
|
final String ownerUserID;
|
|
final bool allChannels;
|
|
final List<String> channels;
|
|
final String permissions;
|
|
|
|
const KeyTokenPreview({
|
|
required this.keytokenID,
|
|
required this.name,
|
|
required this.ownerUserID,
|
|
required this.allChannels,
|
|
required this.channels,
|
|
required this.permissions,
|
|
});
|
|
|
|
factory KeyTokenPreview.fromJson(Map<String, dynamic> json) {
|
|
return KeyTokenPreview(
|
|
keytokenID: json['keytoken_id'] as String,
|
|
name: json['name'] as String,
|
|
ownerUserID: json['owner_user_id'] as String,
|
|
allChannels: json['all_channels'] as bool,
|
|
channels: (json['channels'] as List<dynamic>).map((e) => e as String).toList(),
|
|
permissions: json['permissions'] as String,
|
|
);
|
|
}
|
|
}
|