MOBILE-4304 sharedfiles: Update database usage
parent
7e2d2fb74b
commit
bb82cd8ff1
|
@ -16,7 +16,6 @@ import { Injectable } from '@angular/core';
|
|||
import { FileEntry, DirectoryEntry } from '@awesome-cordova-plugins/file/ngx';
|
||||
import { Md5 } from 'ts-md5/dist/md5';
|
||||
|
||||
import { SQLiteDB } from '@classes/sqlitedb';
|
||||
import { CoreLogger } from '@singletons/logger';
|
||||
import { CoreApp } from '@services/app';
|
||||
import { CoreFile } from '@services/file';
|
||||
|
@ -27,6 +26,9 @@ import { CoreEvents } from '@singletons/events';
|
|||
import { makeSingleton } from '@singletons';
|
||||
import { APP_SCHEMA, CoreSharedFilesDBRecord, SHARED_FILES_TABLE_NAME } from './database/sharedfiles';
|
||||
import { CorePath } from '@singletons/path';
|
||||
import { asyncInstance } from '@/core/utils/async-instance';
|
||||
import { CoreDatabaseTable } from '@classes/database/database-table';
|
||||
import { CoreDatabaseCachingStrategy, CoreDatabaseTableProxy } from '@classes/database/database-table-proxy';
|
||||
|
||||
/**
|
||||
* Service to share files with the app.
|
||||
|
@ -37,13 +39,10 @@ export class CoreSharedFilesProvider {
|
|||
static readonly SHARED_FILES_FOLDER = 'sharedfiles';
|
||||
|
||||
protected logger: CoreLogger;
|
||||
// Variables for DB.
|
||||
protected appDB: Promise<SQLiteDB>;
|
||||
protected resolveAppDB!: (appDB: SQLiteDB) => void;
|
||||
protected sharedFilesTable = asyncInstance<CoreDatabaseTable<CoreSharedFilesDBRecord>>();
|
||||
|
||||
constructor() {
|
||||
this.logger = CoreLogger.getInstance('CoreSharedFilesProvider');
|
||||
this.appDB = new Promise(resolve => this.resolveAppDB = resolve);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,7 +57,16 @@ export class CoreSharedFilesProvider {
|
|||
// Ignore errors.
|
||||
}
|
||||
|
||||
this.resolveAppDB(CoreApp.getDB());
|
||||
const database = CoreApp.getDB();
|
||||
const sharedFilesTable = new CoreDatabaseTableProxy<CoreSharedFilesDBRecord>(
|
||||
{ cachingStrategy: CoreDatabaseCachingStrategy.None },
|
||||
database,
|
||||
SHARED_FILES_TABLE_NAME,
|
||||
);
|
||||
|
||||
await sharedFilesTable.initialize();
|
||||
|
||||
this.sharedFilesTable.setInstance(sharedFilesTable);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -199,9 +207,9 @@ export class CoreSharedFilesProvider {
|
|||
* @returns Resolved if treated, rejected otherwise.
|
||||
*/
|
||||
protected async isFileTreated(fileId: string): Promise<CoreSharedFilesDBRecord> {
|
||||
const db = await this.appDB;
|
||||
const sharedFile = await this.sharedFilesTable.getOneByPrimaryKey({ id: fileId });
|
||||
|
||||
return db.getRecord(SHARED_FILES_TABLE_NAME, { id: fileId });
|
||||
return sharedFile;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -216,9 +224,7 @@ export class CoreSharedFilesProvider {
|
|||
await this.isFileTreated(fileId);
|
||||
} catch (err) {
|
||||
// Doesn't exist, insert it.
|
||||
const db = await this.appDB;
|
||||
|
||||
await db.insertRecord(SHARED_FILES_TABLE_NAME, { id: fileId });
|
||||
await this.sharedFilesTable.insert({ id: fileId });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -259,9 +265,7 @@ export class CoreSharedFilesProvider {
|
|||
* @returns Resolved when unmarked.
|
||||
*/
|
||||
protected async unmarkAsTreated(fileId: string): Promise<void> {
|
||||
const db = await this.appDB;
|
||||
|
||||
await db.deleteRecords(SHARED_FILES_TABLE_NAME, { id: fileId });
|
||||
await this.sharedFilesTable.deleteByPrimaryKey({ id: fileId });
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue