|
|
|
@ -3,12 +3,10 @@ import * as BetterSqlite3 from '@signalapp/better-sqlite3';
|
|
|
|
|
import {
|
|
|
|
|
ContactInfoSet,
|
|
|
|
|
ContactsConfigWrapperNode,
|
|
|
|
|
ConvoInfoVolatileWrapperNode,
|
|
|
|
|
DisappearingMessageConversationType,
|
|
|
|
|
} from 'libsession_util_nodejs';
|
|
|
|
|
import { isEmpty, isEqual, isFinite, isNumber } from 'lodash';
|
|
|
|
|
import { isEmpty, isEqual } from 'lodash';
|
|
|
|
|
import { CONVERSATION_PRIORITIES } from '../../../models/conversationAttributes';
|
|
|
|
|
import { MESSAGES_TABLE, toSqliteBoolean } from '../../database_utility';
|
|
|
|
|
import { fromHexToArray } from '../../../session/utils/String';
|
|
|
|
|
import { checkTargetMigration, hasDebugEnvVariable } from '../utils';
|
|
|
|
|
import { ConfigDumpRow, CONFIG_DUMP_TABLE } from '../../../types/sqlSharedTypes';
|
|
|
|
@ -122,12 +120,10 @@ function getContactInfoFromDBValues({
|
|
|
|
|
return wrapperContact;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function insertContactIntoContactWrapper(
|
|
|
|
|
function updateContactInContactWrapper(
|
|
|
|
|
contact: any,
|
|
|
|
|
blockedNumbers: Array<string>,
|
|
|
|
|
contactsConfigWrapper: ContactsConfigWrapperNode | null, // set this to null to only insert into the convo volatile wrapper (i.e. for ourConvo case)
|
|
|
|
|
volatileConfigWrapper: ConvoInfoVolatileWrapperNode,
|
|
|
|
|
db: BetterSqlite3.Database,
|
|
|
|
|
contactsConfigWrapper: ContactsConfigWrapperNode,
|
|
|
|
|
version: number
|
|
|
|
|
) {
|
|
|
|
|
checkTargetMigration(version, targetVersion);
|
|
|
|
@ -189,36 +185,10 @@ function insertContactIntoContactWrapper(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
const rows = db
|
|
|
|
|
.prepare(
|
|
|
|
|
`
|
|
|
|
|
SELECT MAX(COALESCE(sent_at, 0)) AS max_sent_at
|
|
|
|
|
FROM ${MESSAGES_TABLE} WHERE
|
|
|
|
|
conversationId = $conversationId AND
|
|
|
|
|
unread = $unread;
|
|
|
|
|
`
|
|
|
|
|
)
|
|
|
|
|
.get({
|
|
|
|
|
conversationId: contact.id,
|
|
|
|
|
unread: toSqliteBoolean(false), // we want to find the message read with the higher sentAt timestamp
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const maxRead = rows?.max_sent_at;
|
|
|
|
|
const lastRead = isNumber(maxRead) && isFinite(maxRead) ? maxRead : 0;
|
|
|
|
|
hasDebugEnvVariable &&
|
|
|
|
|
console.info(`Inserting contact into volatile wrapper maxread: ${contact.id} :${lastRead}`);
|
|
|
|
|
volatileConfigWrapper.set1o1(contact.id, lastRead, false);
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.error(
|
|
|
|
|
`volatileConfigWrapper.set1o1 during migration failed with ${e.message} for id: ${contact.id}. skipping`
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const V34 = {
|
|
|
|
|
fetchConfigDumps,
|
|
|
|
|
writeConfigDumps,
|
|
|
|
|
insertContactIntoContactWrapper,
|
|
|
|
|
updateContactInContactWrapper,
|
|
|
|
|
};
|
|
|
|
|