Skip to content

Commit 39faa8f

Browse files
authored
Merge pull request #1135 from rocket-admin/backend_saved_filters
Add validation for missing filters in TableFiltersController and update response handling in FindTableFiltersUseCase
2 parents c1c2485 + d66d4ef commit 39faa8f

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

backend/src/entities/table-filters/table-filters.controller.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ export class TableFiltersController {
6565
if (!tableName) {
6666
throw new BadRequestException(Messages.TABLE_NAME_MISSING);
6767
}
68+
if (!body.filters) {
69+
throw new BadRequestException(Messages.FILTERS_MISSING);
70+
}
6871
const inputData: CreateTableFiltersDto = {
6972
table_name: tableName,
7073
connection_id: connectionId,
@@ -121,6 +124,6 @@ export class TableFiltersController {
121124
table_name: tableName,
122125
connection_id: connectionId,
123126
};
124-
return await this.deleteTableFiltersUseCase.execute(inputData, InTransactionEnum.ON);
127+
return await this.deleteTableFiltersUseCase.execute(inputData, InTransactionEnum.OFF);
125128
}
126129
}

backend/src/entities/table-filters/use-cases/find-table-filters.use.case.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { Inject, Injectable, NotFoundException } from '@nestjs/common';
1+
import { Inject, Injectable } from '@nestjs/common';
22
import AbstractUseCase from '../../../common/abstract-use.case.js';
33
import { IGlobalDatabaseContext } from '../../../common/application/global-database-context.interface.js';
44
import { BaseType } from '../../../common/data-injection.tokens.js';
5-
import { Messages } from '../../../exceptions/text/messages.js';
5+
66
import { FindTableFiltersDs } from '../application/data-structures/find-table-filters.ds.js';
77
import { CreatedTableFiltersRO } from '../application/response-objects/created-table-filters.ro.js';
88
import { IFindTableFilters } from './table-filters-use-cases.interface.js';
@@ -26,7 +26,9 @@ export class FindTableFiltersUseCase
2626
connection_id,
2727
);
2828
if (!foundTableFilters) {
29-
throw new NotFoundException(Messages.TABLE_FILTERS_NOT_FOUND);
29+
return {
30+
filters: null,
31+
} as CreatedTableFiltersRO;
3032
}
3133
return {
3234
id: foundTableFilters.id,

backend/src/exceptions/text/messages.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ export const Messages = {
326326
EMAIL_CHANGED: 'Email changed',
327327
EMAIL_SEND_FAILED: (email: string) => `Email sending to ${email} failed`,
328328
EMAIL_VERIFICATION_REQUESTED: 'Email verification requested',
329+
FILTERS_MISSING: 'Filters are missing',
329330
USER_EMAIL_NOT_FOUND: (email: string) =>
330331
`User ${email} is not found in our system, please ask the user to create an account first`,
331332
USER_EMAIL_NOT_FOUND_AND_INVITED: (email: string) =>

backend/test/ava-tests/saas-tests/table-filters-e2e-test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ test.serial(`${currentTest} should delete table filters`, async (t) => {
249249
.set('Content-Type', 'application/json')
250250
.set('Accept', 'application/json');
251251

252-
t.is(getTableFiltersResponse.status, 404);
252+
t.is(getTableFiltersResponse.status, 200);
253+
t.is(getTableFiltersResponse.body.filters, null);
253254
} catch (e) {
254255
console.error(e);
255256
t.fail();

0 commit comments

Comments
 (0)