Files
dashlibstorage/src/store/article/resolveArticleBySku.js
2026-09-22 07:25:16 +02:00

36 lines
1.2 KiB
JavaScript

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,
};
};
}