29 lines
950 B
JavaScript
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;
|
|
};
|
|
}
|