fix: Delete bank account with uncategorized transactions

This commit is contained in:
Ahmed Bouhuolia
2024-08-18 14:20:23 +02:00
parent 4ba1c0aa22
commit fb8118bea8
8 changed files with 131 additions and 13 deletions

View File

@@ -1,4 +1,5 @@
import { Model } from 'objection';
import { castArray, omit, pick } from 'lodash';
import { isEmpty } from 'lodash';
import { ServiceError } from '@/exceptions';
@@ -16,7 +17,10 @@ export default class PaginationQueryBuilder extends Model.QueryBuilder {
});
}
queryAndThrowIfHasRelations = ({ type, message }) => {
queryAndThrowIfHasRelations = ({ type, message, excludeRelations = [], includedRelations = [] }) => {
const _excludeRelations = castArray(excludeRelations);
const _includedRelations = castArray(includedRelations);
const model = this.modelClass();
const modelRelations = Object.keys(model.relationMappings).filter(
(relation) =>
@@ -25,9 +29,13 @@ export default class PaginationQueryBuilder extends Model.QueryBuilder {
) !== -1
);
const relations = model.secureDeleteRelations || modelRelations;
const filteredRelations = !isEmpty(_includedRelations) ?
relations.filter(r => _includedRelations.includes(r)) :
!isEmpty(_excludeRelations) ? relations.filter(r => !excludeRelations.includes(r)) : relations;
this.runAfter((model, query) => {
const nonEmptyRelations = relations.filter(
const nonEmptyRelations = filteredRelations.filter(
(relation) => !isEmpty(model[relation])
);
if (nonEmptyRelations.length > 0) {
@@ -36,7 +44,7 @@ export default class PaginationQueryBuilder extends Model.QueryBuilder {
return model;
});
return this.onBuild((query) => {
relations.forEach((relation) => {
filteredRelations.forEach((relation) => {
query.withGraphFetched(`${relation}(selectId)`).modifiers({
selectId(builder) {
builder.select('id');