import { LIST_BY_COMPANYUSER as MSSQL_LIST } from '../../providers/mssql/queries/modelconversation.js'; import { LIST_BY_COMPANYUSER as SQLITE_LIST } from '../../providers/sqlite3/queries/modelconversation.js'; import resolveSelectedCompanyAccess from '../companyuser/resolveSelectedCompanyAccess.js'; import makeRunner from '../runner.js'; import shape from './shape.js'; export default function list(provider) { const access = resolveSelectedCompanyAccess(provider); const sql = provider?.dialect === 'sqlite3' ? SQLITE_LIST : MSSQL_LIST; /** * Lists the user's own model conversations in the selected company, newest activity first. * * @param {number} googleAuthId - The id of the Google auth user. * @param {object} [tx] - Optional transaction to run within. * @returns {Promise>} * * @example * const conversations = await store.modelconversation.list(42); */ return async (googleAuthId, tx) => { const runner = makeRunner(provider, tx); const { companyuserId } = await access(googleAuthId, runner); const result = await runner.query(sql, { companyuserId }); return result.rows.map(shape); }; }