impress-2020/server/loaders.js

27 lines
593 B
JavaScript
Raw Normal View History

2020-04-22 11:51:36 -07:00
async function loadItems(db, ids) {
const qs = ids.map((_) => "?").join(",");
const [rows, _] = await db.execute(
`SELECT * FROM items WHERE id IN (${qs})`,
ids
);
return rows;
}
async function loadItemTranslation(db, itemId, locale) {
const [
rows,
_,
] = await db.execute(
`SELECT * FROM item_translations WHERE item_id = ? AND locale = ? LIMIT 1`,
[itemId, locale]
);
if (rows.length === 0) {
throw new Error(`could not load translation for ${itemId}, ${locale}`);
}
return rows[0];
}
module.exports = { loadItems, loadItemTranslation };