| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-04-14 18:09:36 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-04-14 18:09:36 UTC |
| parent | 000ab95153a722080a167ed3e8f2ab1eae541edf |
| snikket/Persistence.hx | +1 | -0 |
| snikket/persistence/Dummy.hx | +5 | -0 |
| snikket/persistence/Sqlite.hx | +7 | -0 |
diff --git a/snikket/Persistence.hx b/snikket/Persistence.hx index adebe48..18b774b 100644 --- a/snikket/Persistence.hx +++ b/snikket/Persistence.hx @@ -30,6 +30,7 @@ interface Persistence { public function storeLogin(login:String, clientId:String, displayName:String, token:Null<String>):Void; public function getLogin(login:String, callback:(clientId:Null<String>, token:Null<String>, fastCount: Int, displayName:Null<String>)->Void):Void; public function removeAccount(accountId: String, completely:Bool):Void; + public function listAccounts(callback:(Array<String>)->Void):Void; public function storeStreamManagement(accountId:String, data:Null<BytesData>):Void; public function getStreamManagement(accountId:String, callback: (Null<BytesData>)->Void):Void; public function storeService(accountId:String, serviceId:String, name:Null<String>, node:Null<String>, caps:Caps):Void; diff --git a/snikket/persistence/Dummy.hx b/snikket/persistence/Dummy.hx index 1c1afbe..39ba123 100644 --- a/snikket/persistence/Dummy.hx +++ b/snikket/persistence/Dummy.hx @@ -118,6 +118,11 @@ class Dummy implements Persistence { @HaxeCBridge.noemit public function removeAccount(accountId:String, completely:Bool) { } + @HaxeCBridge.noemit + public function listAccounts(callback:(Array<String>)->Void) { + callback([]); + } + @HaxeCBridge.noemit public function storeStreamManagement(accountId:String, sm:Null<BytesData>) { } diff --git a/snikket/persistence/Sqlite.hx b/snikket/persistence/Sqlite.hx index 678999a..68979ad 100644 --- a/snikket/persistence/Sqlite.hx +++ b/snikket/persistence/Sqlite.hx @@ -616,6 +616,13 @@ class Sqlite implements Persistence implements KeyValueStore { db.exec("DELETE FROM services WHERE account_id=?", [accountId]); } + + public function listAccounts(callback:(Array<String>)->Void) { + db.exec("SELECT account_id FROM accounts").then(result -> + callback(result == null ? [] : { iterator: () -> result }.map(row -> row.account_id)) + ); + } + private var smStoreInProgress = false; private var smStoreNext: Null<BytesData> = null; @HaxeCBridge.noemit