import { RESOLVE_ARTICLE_ACCESS_BY_SKU as MSSQL_RESOLVE } from '../../providers/mssql/queries/article.js'; import { RESOLVE_ARTICLE_ACCESS_BY_SKU as SQLITE_RESOLVE } from '../../providers/sqlite3/queries/article.js'; import makeRunner from '../runner.js'; export default function resolveArticleBySku(provider) { const sql = provider?.dialect === 'sqlite3' ? SQLITE_RESOLVE : MSSQL_RESOLVE; return async (googleAuthId, sku, tx) => { const runner = makeRunner(provider, tx); const result = await runner.query(sql, { sku, googleAuthId }); const row = result.rows[0]; if (!row?.articleId || !row?.categoryId) { throw new Error('Article not found'); } if (!row.companyId || !row.rootCategoryId || !row.languageId) { throw new Error('Parent not found'); } if (!row.companyuserId) { throw new Error('Not authorized'); } return { articleId: row.articleId, categoryId: row.categoryId, languageId: row.languageId, companyId: row.companyId, rootCategoryId: row.rootCategoryId, posCustomerGroupId: row.posCustomerGroupId ?? null, companyuserId: row.companyuserId, }; }; }