26 lines
969 B
JavaScript
26 lines
969 B
JavaScript
import sql from 'mssql';
|
|
import { isDemoMode } from '../demo/mode.js';
|
|
import { getDemoCategoryCount } from '../demo/store.js';
|
|
import { getPool } from '../db.js';
|
|
import { CATEGORY_TREE_CTE, categoryTreeRequest, getRootCategoryId } from './category-tree.js';
|
|
|
|
const CATEGORY_COUNT_SQL = `
|
|
${CATEGORY_TREE_CTE}
|
|
SELECT COUNT(*) AS CategoryCount
|
|
FROM dbo.tKategorie k
|
|
WHERE k.kKategorie IN (SELECT kKategorie FROM CategoryTree)
|
|
AND (@kShop = 0 OR EXISTS (SELECT 1 FROM dbo.tKategorieShop ks WHERE ks.kKategorie = k.kKategorie AND ks.kShop = @kShop))
|
|
AND CONVERT(BIGINT, k.bRowversion) > @cursor;
|
|
`;
|
|
|
|
export async function getCategoryCount({ cursor = 0, rootCategoryId = getRootCategoryId() } = {}) {
|
|
if (isDemoMode()) {
|
|
return getDemoCategoryCount({ cursor });
|
|
}
|
|
|
|
const result = await categoryTreeRequest(getPool(), rootCategoryId)
|
|
.input('cursor', sql.BigInt, cursor)
|
|
.query(CATEGORY_COUNT_SQL);
|
|
return result.recordset[0]?.CategoryCount ?? 0;
|
|
}
|