fix: making pagination more readable

This commit is contained in:
Ahmed Bouhuolia
2024-08-18 19:38:15 +02:00
parent 2f21107a43
commit 06ea631732
2 changed files with 24 additions and 16 deletions

View File

@@ -17,7 +17,12 @@ export default class PaginationQueryBuilder extends Model.QueryBuilder {
});
}
queryAndThrowIfHasRelations = ({ type, message, excludeRelations = [], includedRelations = [] }) => {
queryAndThrowIfHasRelations = ({
type,
message,
excludeRelations = [],
includedRelations = [],
}) => {
const _excludeRelations = castArray(excludeRelations);
const _includedRelations = castArray(includedRelations);
@@ -29,10 +34,17 @@ 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;
const filteredByIncluded = relations.filter((r) =>
_includedRelations.includes(r)
);
const filteredByExcluded = relations.filter(
(r) => !excludeRelations.includes(r)
);
const filteredRelations = !isEmpty(_includedRelations)
? filteredByIncluded
: !isEmpty(_excludeRelations)
? filteredByExcluded
: relations;
this.runAfter((model, query) => {
const nonEmptyRelations = filteredRelations.filter(

View File

@@ -2,7 +2,6 @@ import { Inject, Service } from 'typedi';
import { IAccountEventDeletedPayload } from '@/interfaces';
import { PlaidClientWrapper } from '@/lib/Plaid';
import HasTenancyService from '@/services/Tenancy/TenancyService';
import { runAfterTransaction } from '@/services/UnitOfWork/TransactionsHooks';
import events from '@/subscribers/events';
@Service()
@@ -53,16 +52,13 @@ export class DisconnectPlaidItemOnAccountDeleted {
.delete();
// Remove Plaid item once the transaction resolve.
runAfterTransaction(trx, async () => {
if (oldPlaidItem) {
const plaidInstance = PlaidClientWrapper.getClient();
// Remove the Plaid item.
await plaidInstance.itemRemove({
access_token: oldPlaidItem.plaidAccessToken,
});
}
})
if (oldPlaidItem) {
const plaidInstance = PlaidClientWrapper.getClient();
// Remove the Plaid item.
await plaidInstance.itemRemove({
access_token: oldPlaidItem.plaidAccessToken,
});
}
}
}