u
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { DELETE_BY_ARTICLE_AND_HASH as MSSQL_QUERY } from '../../providers/mssql/queries/pic.js';
|
||||
import { DELETE_BY_ARTICLE_AND_HASH as SQLITE_QUERY } from '../../providers/sqlite3/queries/pic.js';
|
||||
import resolveArticleBySku from './resolveArticleBySku.js';
|
||||
import { recordImageDeleteHistory } from '../articlehistory/record.js';
|
||||
import makeRunner from '../runner.js';
|
||||
|
||||
export default function deleteImage(provider) {
|
||||
@@ -21,21 +22,36 @@ export default function deleteImage(provider) {
|
||||
* await store.article.deleteImage(42, 'SKU-1', 'abc123');
|
||||
*/
|
||||
return async (googleAuthId, sku, fullHash, tx) => {
|
||||
const { articleId } = await resolve(googleAuthId, sku, tx);
|
||||
const runner = makeRunner(provider, tx);
|
||||
const result = await runner.query(sql, { articleId, fullHash });
|
||||
const runDelete = async (runner) => {
|
||||
const { articleId, companyuserId } = await resolve(googleAuthId, sku, runner);
|
||||
const result = await runner.query(sql, { articleId, fullHash });
|
||||
|
||||
if (!result.rowsAffected) {
|
||||
throw new Error('Image not found');
|
||||
}
|
||||
|
||||
if (provider?.dialect === 'sqlite3') {
|
||||
if (runner.deletePic) {
|
||||
await runner.deletePic(fullHash);
|
||||
} else if (provider?.deletePic) {
|
||||
await provider.deletePic(fullHash);
|
||||
if (!result.rowsAffected) {
|
||||
throw new Error('Image not found');
|
||||
}
|
||||
|
||||
if (provider?.dialect === 'sqlite3') {
|
||||
if (runner.deletePic) {
|
||||
await runner.deletePic(fullHash);
|
||||
} else if (provider?.deletePic) {
|
||||
await provider.deletePic(fullHash);
|
||||
}
|
||||
}
|
||||
|
||||
await recordImageDeleteHistory(runner, {
|
||||
articleId,
|
||||
companyuserId,
|
||||
fullHash,
|
||||
});
|
||||
};
|
||||
|
||||
if (tx) {
|
||||
return runDelete(makeRunner(provider, tx));
|
||||
}
|
||||
if (typeof provider?.transaction === 'function') {
|
||||
return provider.transaction(runDelete);
|
||||
}
|
||||
return runDelete(makeRunner(provider));
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user