- Rewrite JSDoc across all store methods to document the actual async methods (real params, returns, throws) instead of the internal wrappers - Split quote/order into individual module files backed by shared manifestDoc helpers; remove the createStore factory and thin wrappers - Deduplicate manifest line helpers into src/store/manifestLines.js - Extend generate-api-doc.js to render parameter/return/throws types and emit per-namespace API.<module>.md files with an API.md index - Regenerate all API docs
34 lines
1.2 KiB
JavaScript
34 lines
1.2 KiB
JavaScript
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<Array<{key: string, value: string, frontend: boolean}>>} 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);
|
|
};
|
|
}
|