Skip to content

Commit ac29814

Browse files
[frontend/backend] edit input updated (#10383)
1 parent 6a9e5ec commit ac29814

File tree

6 files changed

+52
-13
lines changed

6 files changed

+52
-13
lines changed

opencti-platform/opencti-front/src/components/saved_filters/SavedFilterButton.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import { type SavedFiltersSelectionData } from 'src/components/saved_filters/Sav
1111
import Badge from '@mui/material/Badge';
1212

1313
const savedFilterButtonEditMutation = graphql`
14-
mutation SavedFilterButtonEditMutation($id: ID!, $filters: String!) {
15-
savedFilterFieldPatch(id: $id, filters: $filters) {
14+
mutation SavedFilterButtonEditMutation($id: ID!, $input: [EditInput!]!) {
15+
savedFilterFieldPatch(id: $id, input: $input) {
1616
id
1717
name
1818
filters
@@ -50,10 +50,14 @@ const SavedFilterButton = ({ currentSavedFilter, setCurrentSavedFilter }: SavedF
5050

5151
const handleEditSavedFilter = () => {
5252
if (!currentSavedFilter) return;
53+
const input = {
54+
key: 'filters',
55+
value: [JSON.stringify(filters)],
56+
};
5357
commit({
5458
variables: {
5559
id: currentSavedFilter.id,
56-
filters: JSON.stringify(filters),
60+
input,
5761
},
5862
onCompleted: () => {
5963
const newValue = {

opencti-platform/opencti-front/src/schema/relay.schema.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9083,7 +9083,7 @@ type Mutation {
90839083
disseminationListSend(id: ID!, input: DisseminationListSendInput!): Boolean
90849084
savedFilterAdd(input: SavedFilterAddInput!): SavedFilter
90859085
savedFilterDelete(id: ID!): ID
9086-
savedFilterFieldPatch(id: ID!, filters: String!): SavedFilter
9086+
savedFilterFieldPatch(id: ID!, input: [EditInput!]): SavedFilter
90879087
requestAccessAdd(input: RequestAccessAddInput!): ID
90889088
requestAccessConfigure(input: RequestAccessConfigureInput!): RequestAccessConfiguration
90899089
}

opencti-platform/opencti-graphql/src/generated/graphql.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15535,8 +15535,8 @@ export type MutationSavedFilterDeleteArgs = {
1553515535

1553615536

1553715537
export type MutationSavedFilterFieldPatchArgs = {
15538-
filters: Scalars['String']['input'];
1553915538
id: Scalars['ID']['input'];
15539+
input?: InputMaybe<Array<EditInput>>;
1554015540
};
1554115541

1554215542

@@ -38059,7 +38059,7 @@ export type MutationResolvers<ContextType = any, ParentType extends ResolversPar
3805938059
ruleSetActivation?: Resolver<ResolversTypes['Rule'], ParentType, ContextType, RequireFields<MutationRuleSetActivationArgs, 'enable' | 'id'>>;
3806038060
savedFilterAdd?: Resolver<Maybe<ResolversTypes['SavedFilter']>, ParentType, ContextType, RequireFields<MutationSavedFilterAddArgs, 'input'>>;
3806138061
savedFilterDelete?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType, RequireFields<MutationSavedFilterDeleteArgs, 'id'>>;
38062-
savedFilterFieldPatch?: Resolver<Maybe<ResolversTypes['SavedFilter']>, ParentType, ContextType, RequireFields<MutationSavedFilterFieldPatchArgs, 'filters' | 'id'>>;
38062+
savedFilterFieldPatch?: Resolver<Maybe<ResolversTypes['SavedFilter']>, ParentType, ContextType, RequireFields<MutationSavedFilterFieldPatchArgs, 'id'>>;
3806338063
sectorAdd?: Resolver<Maybe<ResolversTypes['Sector']>, ParentType, ContextType, RequireFields<MutationSectorAddArgs, 'input'>>;
3806438064
sectorEdit?: Resolver<Maybe<ResolversTypes['SectorEditMutations']>, ParentType, ContextType, RequireFields<MutationSectorEditArgs, 'id'>>;
3806538065
sessionKill?: Resolver<Maybe<ResolversTypes['ID']>, ParentType, ContextType, RequireFields<MutationSessionKillArgs, 'id'>>;

opencti-platform/opencti-graphql/src/modules/savedFilter/savedFilter-domain.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,19 @@ export const deleteSavedFilter = (context: AuthContext, user: AuthUser, savedFil
2828
};
2929

3030
export const fieldPatchSavedFilter = async (context: AuthContext, user: AuthUser, args: MutationSavedFilterFieldPatchArgs) => {
31-
const { id, filters } = args;
31+
const { id, input } = args;
3232
const savedFilter = await findById(context, user, id);
3333
if (!savedFilter) throw FunctionalError('Saved filter cannot be found', { id });
3434

35-
const fullInput = [{ key: 'filters', value: [filters] }];
36-
const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_SAVED_FILTER, fullInput);
35+
const { element } = await updateAttribute(context, user, id, ENTITY_TYPE_SAVED_FILTER, input);
3736

3837
await publishUserAction({
3938
user,
4039
event_type: 'mutation',
4140
event_scope: 'update',
4241
event_access: 'administration',
4342
message: `updates \`filters\` for saved filters \`${element.name}\``,
44-
context_data: { id, entity_type: ENTITY_TYPE_SAVED_FILTER, input: filters }
43+
context_data: { id, entity_type: ENTITY_TYPE_SAVED_FILTER, input }
4544
});
4645

4746
return element;

opencti-platform/opencti-graphql/src/modules/savedFilter/savedFilter.graphql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,5 @@ type Query {
4545
type Mutation {
4646
savedFilterAdd(input: SavedFilterAddInput!): SavedFilter @auth
4747
savedFilterDelete(id: ID!): ID @auth
48-
savedFilterFieldPatch(id: ID!, filters: String!): SavedFilter @auth
48+
savedFilterFieldPatch(id: ID!, input: [EditInput!]): SavedFilter @auth
4949
}

opencti-platform/opencti-graphql/tests/02-integration/02-resolvers/savedFilterResolver-test.ts

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,17 @@ const DELETE_SAVED_FILTER_MUTATION = gql`
4848
}
4949
`;
5050

51+
const EDIT_SAVED_FILTER_MUTATION = gql`
52+
mutation savedFilterEdit($id: ID!, $input: [EditInput!]!) {
53+
savedFilterFieldPatch(id: $id, input: $input) {
54+
id
55+
name
56+
filters
57+
scope
58+
}
59+
}
60+
`;
61+
5162
describe('Saved Filter Resolver', () => {
5263
let createdFilterId: string = '';
5364
const newFilter = {
@@ -56,7 +67,7 @@ describe('Saved Filter Resolver', () => {
5667
filterGroups: [],
5768
};
5869

59-
describe('addSavedFilter', () => {
70+
describe('savedFilterAdd', () => {
6071
describe('If I use the addSavedFilter mutation', () => {
6172
it('should create a filter', async () => {
6273
const input = {
@@ -104,7 +115,32 @@ describe('Saved Filter Resolver', () => {
104115
});
105116
});
106117

107-
describe('deleteSavedFilter', () => {
118+
describe('savedFilterEdit', () => {
119+
describe('If I edit the filter of a saved Filter', async () => {
120+
const editedFilters = {
121+
...newFilter,
122+
filters: [{ key: 'entity_type', operator: 'eq', mode: 'or', values: ['Task'] }]
123+
};
124+
const input = {
125+
key: 'filters',
126+
value: [JSON.stringify(editedFilters)],
127+
};
128+
129+
it('should have a filter different than the initial value', async () => {
130+
const result = await queryAsAdminWithSuccess({
131+
query: EDIT_SAVED_FILTER_MUTATION,
132+
variables: {
133+
id: createdFilterId,
134+
input,
135+
},
136+
});
137+
138+
expect(result?.data?.savedFilterFieldPatch?.filters).not.equal(JSON.stringify(newFilter));
139+
});
140+
});
141+
});
142+
143+
describe('savedFilterDelete', () => {
108144
describe('If I take the last created filter', () => {
109145
it('should have found the filter', async () => {
110146
const savedFilter = await elLoadById(testContext, ADMIN_USER, createdFilterId);

0 commit comments

Comments
 (0)