Files
com.blitzwallet/db/interactionManager.js
T

84 lines
2.2 KiB
JavaScript

import { addDataToCollection } from '.';
import {
NWC_IDENTITY_PUB_KEY,
QUICK_PAY_STORAGE_KEY,
SPEND_AND_REPLACE_STORAGE_KEY,
} from '../app/constants';
import { setLocalStorageItem } from '../app/functions';
const PRESET_LOCAL_DATA = {
homepageTxPreferance: 25,
enabledSlidingCamera: false,
userFaceIDPereferance: false,
fiatCurrenciesList: [],
failedTransactions: [],
satDisplay: 'symbol',
enabledEcash: false,
hideUnknownContacts: false,
useTrampoline: true,
[QUICK_PAY_STORAGE_KEY]: {
isFastPayEnabled: false,
fastPayThresholdSats: 5000,
},
[SPEND_AND_REPLACE_STORAGE_KEY]: { isEnabled: false },
boltzClaimTxs: [],
savedLiquidSwaps: [],
cachedContactsList: [],
liquidSwaps: [],
crashReportingSettings: {
isCrashReportingEnabled: true,
lastChangedInSettings: new Date().getTime(),
lastChangedWithFirebase: new Date().getTime(),
},
exploreData: {
lastUpdated: new Date().getTime(),
data: null,
},
didViewNWCMessage: false,
userSelectedLanguage: 'en',
[NWC_IDENTITY_PUB_KEY]: '',
userBalanceDenomination: 'sats',
didViewSeedPhrase: false,
enabledBTKNTokens: null,
defaultSpendToken: 'bitcoin',
thousandsSeperator: 'space',
enabledLiquidAutoSwap: true,
pinnedAccounts: [],
monthlyBudget: null,
bitrefillEmail: '',
hideSmallPaymentsHomepage: false,
};
async function sendDataToDB(newObject, uuid) {
try {
const localStorageData = {};
const dbStorageData = { ...newObject };
Object.keys(newObject).forEach(key => {
if (Object.keys(PRESET_LOCAL_DATA).includes(key)) {
localStorageData[key] = newObject[key];
delete dbStorageData[key];
}
});
if (Object.keys(localStorageData).length > 0) {
const localStoragePromises = Object.entries(localStorageData).map(
([key, value]) => setLocalStorageItem(key, JSON.stringify(value)),
);
await Promise.all(localStoragePromises);
}
if (Object.keys(dbStorageData).length > 0) {
await addDataToCollection(dbStorageData, 'blitzWalletUsers', uuid);
}
console.log('sending data to database:', localStorageData, dbStorageData);
return true;
} catch (error) {
console.error('Error in sendDataToDB:', error);
return false;
}
}
export { sendDataToDB };