Add existence check to addStickerPackReference

This commit is contained in:
Fedor Indutny 2025-08-13 11:01:54 -07:00 committed by GitHub
commit fb6f5235ad
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -6258,26 +6258,35 @@ function addStickerPackReference(
); );
} }
db.prepare( db.transaction(() => {
` const [select, selectParams] = sql`
INSERT OR REPLACE INTO sticker_references ( SELECT EXISTS (
messageId, SELECT 1 FROM sticker_packs WHERE id IS ${packId}
packId, )
stickerId, `;
isUnresolved const exists =
) values ( db.prepare(select, { pluck: true }).get<number>(selectParams) === 1;
$messageId, if (!exists) {
$packId, logger.warn('addStickerPackReference: did not find referenced pack');
$stickerId, return;
$isUnresolved }
)
` const [insert, insertParams] = sql`
).run({ INSERT OR REPLACE INTO sticker_references (
messageId, messageId,
packId, packId,
stickerId, stickerId,
isUnresolved: isUnresolved ? 1 : 0, isUnresolved
}); ) values (
${messageId},
${packId},
${stickerId},
${isUnresolved ? 1 : 0}
)
`;
db.prepare(insert).run(insertParams);
})();
} }
function deleteStickerPackReference( function deleteStickerPackReference(
db: WritableDB, db: WritableDB,