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