mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2026-02-09 09:44:22 +01:00
Init snippet page and store
This commit is contained in:
@@ -35,7 +35,7 @@ class PrivateKeyInfo {
|
||||
}
|
||||
}
|
||||
|
||||
List<PrivateKeyInfo>? getPrivateKeyInfoList(dynamic data) {
|
||||
List<PrivateKeyInfo> getPrivateKeyInfoList(dynamic data) {
|
||||
List<PrivateKeyInfo> ss = [];
|
||||
if (data is String) {
|
||||
data = json.decode(data);
|
||||
|
||||
30
lib/data/model/server/snippet.dart
Normal file
30
lib/data/model/server/snippet.dart
Normal file
@@ -0,0 +1,30 @@
|
||||
import 'dart:convert';
|
||||
|
||||
class Snippet {
|
||||
late String name;
|
||||
late String script;
|
||||
Snippet(this.name, this.script);
|
||||
|
||||
Snippet.fromJson(Map<String, dynamic> json) {
|
||||
name = json['name'].toString();
|
||||
script = json['script'].toString();
|
||||
}
|
||||
Map<String, dynamic> toJson() {
|
||||
final data = <String, dynamic>{};
|
||||
data['name'] = name;
|
||||
data['script'] = script;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
List<Snippet> getSnippetList(dynamic data) {
|
||||
List<Snippet> ss = [];
|
||||
if (data is String) {
|
||||
data = json.decode(data);
|
||||
}
|
||||
for (var t in data) {
|
||||
ss.add(Snippet.fromJson(t));
|
||||
}
|
||||
|
||||
return ss;
|
||||
}
|
||||
@@ -12,7 +12,7 @@ class PrivateKeyStore extends PersistentStore {
|
||||
|
||||
List<PrivateKeyInfo> fetch() {
|
||||
return getPrivateKeyInfoList(
|
||||
json.decode(box.get('key', defaultValue: '[]')!))!;
|
||||
json.decode(box.get('key', defaultValue: '[]')!));
|
||||
}
|
||||
|
||||
void delete(PrivateKeyInfo s) {
|
||||
|
||||
33
lib/data/store/snippet.dart
Normal file
33
lib/data/store/snippet.dart
Normal file
@@ -0,0 +1,33 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:toolbox/core/persistant_store.dart';
|
||||
import 'package:toolbox/data/model/server/snippet.dart';
|
||||
|
||||
class SnippetStore extends PersistentStore {
|
||||
void put(Snippet snippet) {
|
||||
final ss = fetch();
|
||||
if (!have(snippet)) ss.add(snippet);
|
||||
box.put('snippet', json.encode(ss));
|
||||
}
|
||||
|
||||
List<Snippet> fetch() {
|
||||
return getSnippetList(
|
||||
json.decode(box.get('snippet', defaultValue: '[]')!));
|
||||
}
|
||||
|
||||
void delete(Snippet s) {
|
||||
final ss = fetch();
|
||||
ss.removeAt(index(s));
|
||||
box.put('snippet', json.encode(ss));
|
||||
}
|
||||
|
||||
void update(Snippet old, Snippet newInfo) {
|
||||
final ss = fetch();
|
||||
ss[index(old)] = newInfo;
|
||||
box.put('snippet', json.encode(ss));
|
||||
}
|
||||
|
||||
int index(Snippet s) => fetch().indexWhere((e) => e.name == s.name);
|
||||
|
||||
bool have(Snippet s) => index(s) != -1;
|
||||
}
|
||||
Reference in New Issue
Block a user