import { LIST_BY_COMPANY, LIST_BY_COMPANY_FRONTEND, } from '../../sql/companysetting.js'; import resolveSelectedCompanyAccess from '../companyuser/resolveSelectedCompanyAccess.js'; import shapeSetting from './shapeSetting.js'; export default function list(pool) { const access = resolveSelectedCompanyAccess(pool); /** * Lists the settings of the user's selected company, optionally only frontend-visible ones. * * @param {number} googleAuthId - The id of the Google auth user. * @param {object} [options] - Optional options. * @param {boolean} [options.frontendOnly] - Only return frontend-visible settings. * @returns {Promise>} The settings. * * @example * const settings = await store.companysetting.list(42, { frontendOnly: true }); * // => [{ key, value, frontend }] */ return async (googleAuthId, { frontendOnly = false } = {}) => { const { companyId } = await access(googleAuthId); const result = await pool .request() .input('companyId', companyId) .query(frontendOnly ? LIST_BY_COMPANY_FRONTEND : LIST_BY_COMPANY); return result.recordset.map(shapeSetting); }; }