[mobile] Remove unused db for public keys (#734)
## Description To keep the changes simple, we are not deleting any existing database instances. In case we need to store this information in the future, we will reuse the existing database instead of creating a new one.
This commit is contained in:
parent
a8922203bf
commit
a9cb6f3077
4 changed files with 1 additions and 105 deletions
mobile/lib
|
@ -14,7 +14,6 @@ import 'package:photos/db/collections_db.dart';
|
|||
import "package:photos/db/embeddings_db.dart";
|
||||
import 'package:photos/db/files_db.dart';
|
||||
import 'package:photos/db/memories_db.dart';
|
||||
import 'package:photos/db/public_keys_db.dart';
|
||||
import 'package:photos/db/trash_db.dart';
|
||||
import 'package:photos/db/upload_locks_db.dart';
|
||||
import 'package:photos/events/signed_in_event.dart';
|
||||
|
@ -165,7 +164,7 @@ class Configuration {
|
|||
: null;
|
||||
await CollectionsDB.instance.clearTable();
|
||||
await MemoriesDB.instance.clearTable();
|
||||
await PublicKeysDB.instance.clearTable();
|
||||
|
||||
await UploadLocksDB.instance.clearTable();
|
||||
await IgnoredFilesService.instance.reset();
|
||||
await TrashDB.instance.clearTable();
|
||||
|
|
|
@ -1,89 +0,0 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:path/path.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:photos/models/public_key.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
|
||||
class PublicKeysDB {
|
||||
static const _databaseName = "ente.public_keys.db";
|
||||
static const _databaseVersion = 1;
|
||||
|
||||
static const table = 'public_keys';
|
||||
|
||||
static const columnEmail = 'email';
|
||||
static const columnPublicKey = 'public_key';
|
||||
|
||||
PublicKeysDB._privateConstructor();
|
||||
static final PublicKeysDB instance = PublicKeysDB._privateConstructor();
|
||||
|
||||
static Future<Database>? _dbFuture;
|
||||
|
||||
Future<Database> get database async {
|
||||
_dbFuture ??= _initDatabase();
|
||||
return _dbFuture!;
|
||||
}
|
||||
|
||||
Future<Database> _initDatabase() async {
|
||||
final Directory documentsDirectory =
|
||||
await getApplicationDocumentsDirectory();
|
||||
final String path = join(documentsDirectory.path, _databaseName);
|
||||
return await openDatabase(
|
||||
path,
|
||||
version: _databaseVersion,
|
||||
onCreate: _onCreate,
|
||||
);
|
||||
}
|
||||
|
||||
Future _onCreate(Database db, int version) async {
|
||||
await db.execute(
|
||||
'''
|
||||
CREATE TABLE $table (
|
||||
$columnEmail TEXT PRIMARY KEY NOT NULL,
|
||||
$columnPublicKey TEXT NOT NULL
|
||||
)
|
||||
''',
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> clearTable() async {
|
||||
final db = await instance.database;
|
||||
await db.delete(table);
|
||||
}
|
||||
|
||||
Future<int> setKey(PublicKey key) async {
|
||||
final db = await instance.database;
|
||||
return db.insert(
|
||||
table,
|
||||
_getRow(key),
|
||||
conflictAlgorithm: ConflictAlgorithm.replace,
|
||||
);
|
||||
}
|
||||
|
||||
Future<List<PublicKey>> searchByEmail(String email) async {
|
||||
final db = await instance.database;
|
||||
return _convertRows(
|
||||
await db.query(
|
||||
table,
|
||||
where: '$columnEmail LIKE ?',
|
||||
whereArgs: ['%$email%'],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> _getRow(PublicKey key) {
|
||||
final row = <String, dynamic>{};
|
||||
row[columnEmail] = key.email;
|
||||
row[columnPublicKey] = key.publicKey;
|
||||
return row;
|
||||
}
|
||||
|
||||
List<PublicKey> _convertRows(List<Map<String, dynamic>> rows) {
|
||||
final keys = <PublicKey>[];
|
||||
for (final row in rows) {
|
||||
keys.add(PublicKey(row[columnEmail], row[columnPublicKey]));
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
class PublicKey {
|
||||
final String email;
|
||||
final String publicKey;
|
||||
|
||||
PublicKey(this.email, this.publicKey);
|
||||
}
|
|
@ -12,7 +12,6 @@ import 'package:photos/core/constants.dart';
|
|||
import "package:photos/core/errors.dart";
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
import 'package:photos/core/network/network.dart';
|
||||
import 'package:photos/db/public_keys_db.dart';
|
||||
import "package:photos/events/account_configured_event.dart";
|
||||
import 'package:photos/events/two_factor_status_change_event.dart';
|
||||
import 'package:photos/events/user_details_changed_event.dart';
|
||||
|
@ -21,7 +20,6 @@ import "package:photos/models/api/user/srp.dart";
|
|||
import 'package:photos/models/delete_account.dart';
|
||||
import 'package:photos/models/key_attributes.dart';
|
||||
import 'package:photos/models/key_gen_result.dart';
|
||||
import 'package:photos/models/public_key.dart' as public_key;
|
||||
import 'package:photos/models/sessions.dart';
|
||||
import 'package:photos/models/set_keys_request.dart';
|
||||
import 'package:photos/models/set_recovery_key_request.dart';
|
||||
|
@ -160,12 +158,6 @@ class UserService {
|
|||
queryParameters: {"email": email},
|
||||
);
|
||||
final publicKey = response.data["publicKey"];
|
||||
await PublicKeysDB.instance.setKey(
|
||||
public_key.PublicKey(
|
||||
email,
|
||||
publicKey,
|
||||
),
|
||||
);
|
||||
return publicKey;
|
||||
} on DioError catch (e) {
|
||||
if (e.response != null && e.response?.statusCode == 404) {
|
||||
|
|
Loading…
Add table
Reference in a new issue