Complete QuickActionBvcEndView Enhanced Triple Migration Pattern (4 minutes)

- Replace retrieveAllAccountsMetadata with $getAllAccounts() mixin method
- Standardize contact fetching to use $contacts() method
- Extract long class strings to computed properties for maintainability
- Add $getAllAccounts() method to PlatformServiceMixin for future migrations
- Achieve 75% performance improvement over estimated time
- Ready for human testing across all platforms
This commit is contained in:
Matthew Raymer
2025-07-16 09:03:33 +00:00
parent b1ef7fb9ee
commit d00c14ac38
8 changed files with 460 additions and 167 deletions

View File

@@ -47,6 +47,7 @@ import type {
import { MASTER_SETTINGS_KEY, type Settings } from "@/db/tables/settings";
import { logger } from "@/utils/logger";
import { Contact } from "@/db/tables/contacts";
import { Account } from "@/db/tables/accounts";
import { Temp } from "@/db/tables/temp";
import { QueryExecResult, DatabaseExecResult } from "@/interfaces/database";
import {
@@ -977,6 +978,23 @@ export const PlatformServiceMixin = {
}
},
/**
* Get all accounts - $getAllAccounts()
* Retrieves all account metadata from the accounts table
* @returns Promise<Account[]> Array of account objects
*/
async $getAllAccounts(): Promise<Account[]> {
try {
return await this.$query<Account>("SELECT * FROM accounts");
} catch (error) {
logger.error(
"[PlatformServiceMixin] Error getting all accounts:",
error,
);
return [];
}
},
// =================================================
// TEMP TABLE METHODS (for temporary storage)
// =================================================
@@ -1299,6 +1317,7 @@ export interface IPlatformServiceMixin {
$getContact(did: string): Promise<Contact | null>;
$deleteContact(did: string): Promise<boolean>;
$contactCount(): Promise<number>;
$getAllAccounts(): Promise<Account[]>;
$insertEntity(
tableName: string,
entity: Record<string, unknown>,
@@ -1428,6 +1447,7 @@ declare module "@vue/runtime-core" {
$getAllContacts(): Promise<Contact[]>;
$getContact(did: string): Promise<Contact | null>;
$deleteContact(did: string): Promise<boolean>;
$getAllAccounts(): Promise<Account[]>;
$insertEntity(
tableName: string,
entity: Record<string, unknown>,