oak-general-business/lib/checkers/articleMenu.js

101 lines
3.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const uuid_1 = require("oak-domain/lib/utils/uuid");
const executor_1 = require("oak-domain/lib/utils/executor");
const checkers = [
{
// 删除文章分类级联删除extraFile
action: 'remove',
type: 'logical',
entity: 'articleMenu',
checker(operation, context) {
const { filter } = operation;
return context.operate('extraFile', {
id: (0, uuid_1.generateNewId)(),
action: 'remove',
data: {},
filter: {
articleMenu: filter,
},
}, {});
},
},
{
// 删除文章分类级联删除子文章分类
action: 'remove',
type: 'logical',
entity: 'articleMenu',
checker(operation, context) {
const { filter } = operation;
if (filter) {
return (0, executor_1.pipeline)(() => context.select('articleMenu', {
data: {
id: 1,
articleMenu$parent: {
$entity: 'articleMenu',
data: {
id: 1,
}
}
},
filter,
}, {}), (articleMenus) => {
const children = articleMenus.map((ele) => ele.articleMenu$parent).flat();
const childrenIds = children?.map((ele) => ele.id);
if (childrenIds && childrenIds.length > 0) {
return context.operate("articleMenu", {
id: (0, uuid_1.generateNewId)(),
action: "remove",
data: {},
filter: {
id: {
$in: childrenIds,
}
},
}, {});
}
});
}
},
},
{
// 删除文章分类级联删除子文章
action: 'remove',
type: 'logical',
entity: 'articleMenu',
checker(operation, context) {
const { filter } = operation;
if (filter) {
return (0, executor_1.pipeline)(() => context.select('articleMenu', {
data: {
id: 1,
article$articleMenu: {
$entity: 'article',
data: {
id: 1,
}
}
},
filter,
}, {}), (articleMenus) => {
const articles = articleMenus.map((ele) => ele.article$articleMenu).flat();
const articleIds = articles?.map((ele) => ele.id);
if (articleIds && articleIds.length > 0) {
return context.operate("article", {
id: (0, uuid_1.generateNewId)(),
action: "remove",
data: {},
filter: {
id: {
$in: articleIds,
}
},
}, {});
}
});
}
},
},
];
exports.default = checkers;