Delete Sync: Handle and send mostRecentNonExpiringMessages if needed
This commit is contained in:
parent
9c0ea4d6ec
commit
08da49a0aa
13 changed files with 356 additions and 46 deletions
|
@ -372,6 +372,7 @@ const dataInterface: ServerInterface = {
|
|||
saveEditedMessage,
|
||||
saveEditedMessages,
|
||||
getMostRecentAddressableMessages,
|
||||
getMostRecentAddressableNondisappearingMessages,
|
||||
|
||||
removeSyncTaskById,
|
||||
saveSyncTasks,
|
||||
|
@ -2119,6 +2120,39 @@ export function getMostRecentAddressableMessagesSync(
|
|||
return rows.map(row => jsonToObject(row.json));
|
||||
}
|
||||
|
||||
async function getMostRecentAddressableNondisappearingMessages(
|
||||
conversationId: string,
|
||||
limit = 5
|
||||
): Promise<Array<MessageType>> {
|
||||
const db = getReadonlyInstance();
|
||||
return getMostRecentAddressableNondisappearingMessagesSync(
|
||||
db,
|
||||
conversationId,
|
||||
limit
|
||||
);
|
||||
}
|
||||
|
||||
export function getMostRecentAddressableNondisappearingMessagesSync(
|
||||
db: Database,
|
||||
conversationId: string,
|
||||
limit = 5
|
||||
): Array<MessageType> {
|
||||
const [query, parameters] = sql`
|
||||
SELECT json FROM messages
|
||||
INDEXED BY messages_by_date_addressable_nondisappearing
|
||||
WHERE
|
||||
expireTimer IS NULL AND
|
||||
conversationId IS ${conversationId} AND
|
||||
isAddressableMessage = 1
|
||||
ORDER BY received_at DESC, sent_at DESC
|
||||
LIMIT ${limit};
|
||||
`;
|
||||
|
||||
const rows = db.prepare(query).all(parameters);
|
||||
|
||||
return rows.map(row => jsonToObject(row.json));
|
||||
}
|
||||
|
||||
async function removeSyncTaskById(id: string): Promise<void> {
|
||||
const db = await getWritableInstance();
|
||||
removeSyncTaskByIdSync(db, id);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue