Files
dashlibstorage/src/store/customergroup/resolveCustomerGroupAccess.js
2026-09-22 07:25:16 +02:00

29 lines
950 B
JavaScript

import { GET_BY_COMPANY_AND_ID as MSSQL_GET_BY_COMPANY_AND_ID } from '../../providers/mssql/queries/customergroup.js';
import { GET_BY_COMPANY_AND_ID as SQLITE_GET_BY_COMPANY_AND_ID } from '../../providers/sqlite3/queries/customergroup.js';
import makeRunner from '../runner.js';
/** Ensure customergroup belongs to company. Throws Customer group not found. */
export default function resolveCustomerGroupAccess(provider) {
const sql =
provider?.dialect === 'sqlite3'
? SQLITE_GET_BY_COMPANY_AND_ID
: MSSQL_GET_BY_COMPANY_AND_ID;
return async (companyId, customergroupId, tx) => {
if (!Number.isFinite(customergroupId)) {
throw new Error('Customer group not found');
}
const result = await makeRunner(provider, tx).query(sql, {
id: customergroupId,
companyId,
});
const row = result.rows[0];
if (!row) {
throw new Error('Customer group not found');
}
return row;
};
}