Skip to content

Commit 6a76582

Browse files
Goumiesmarieflorescontact
authored andcommitted
[backend] WIP Update model (#4538)
1 parent e9a3fe4 commit 6a76582

File tree

4 files changed

+72
-0
lines changed

4 files changed

+72
-0
lines changed

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

+2
Original file line numberDiff line numberDiff line change
@@ -2005,6 +2005,7 @@ export type CaseEdge = {
20052005

20062006
export type CaseIncident = BasicObject & Case & Container & StixCoreObject & StixDomainObject & StixObject & {
20072007
__typename?: 'CaseIncident';
2008+
authorized_members?: Maybe<Array<MemberAccess>>;
20082009
avatar?: Maybe<OpenCtiFile>;
20092010
cases?: Maybe<CaseConnection>;
20102011
confidence?: Maybe<Scalars['Int']['output']>;
@@ -30960,6 +30961,7 @@ export type CaseEdgeResolvers<ContextType = any, ParentType extends ResolversPar
3096030961
}>;
3096130962

3096230963
export type CaseIncidentResolvers<ContextType = any, ParentType extends ResolversParentTypes['CaseIncident'] = ResolversParentTypes['CaseIncident']> = ResolversObject<{
30964+
authorized_members?: Resolver<Maybe<Array<ResolversTypes['MemberAccess']>>, ParentType, ContextType>;
3096330965
avatar?: Resolver<Maybe<ResolversTypes['OpenCtiFile']>, ParentType, ContextType>;
3096430966
cases?: Resolver<Maybe<ResolversTypes['CaseConnection']>, ParentType, ContextType, Partial<CaseIncidentCasesArgs>>;
3096530967
confidence?: Resolver<Maybe<ResolversTypes['Int']>, ParentType, ContextType>;

opencti-platform/opencti-graphql/src/modules/case/case-incident/case-incident-resolvers.ts

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { buildRefRelationKey } from '../../../schema/general';
33
import { RELATION_OBJECT_ASSIGNEE } from '../../../schema/stixRefRelationship';
44
import { stixDomainObjectDelete } from '../../../domain/stixDomainObject';
55
import { addCaseIncident, caseIncidentContainsStixObjectOrStixRelationship, findAll, findById } from './case-incident-domain';
6+
import { getAuthorizedMembers } from '../../../utils/authorizedMembers';
67

78
const caseIncidentResolvers: Resolvers = {
89
Query: {
@@ -12,6 +13,9 @@ const caseIncidentResolvers: Resolvers = {
1213
return caseIncidentContainsStixObjectOrStixRelationship(context, context.user, args.id, args.stixObjectOrStixRelationshipId);
1314
},
1415
},
16+
CaseIncident: {
17+
authorized_members: (caseIncidentResponse, _, context) => getAuthorizedMembers(context, context.user, caseIncidentResponse),
18+
},
1519
CaseIncidentsOrdering: {
1620
creator: 'creator_id',
1721
objectAssignee: buildRefRelationKey(RELATION_OBJECT_ASSIGNEE),

opencti-platform/opencti-graphql/src/modules/case/case-incident/case-incident.graphql

+1
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ type CaseIncident implements BasicObject & StixObject & StixCoreObject & StixDom
137137
response_types: [String!]
138138
severity: String
139139
priority: String
140+
authorized_members: [MemberAccess!]
140141
}
141142

142143
# Ordering
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import { describe, it, expect } from 'vitest';
2+
import gql from 'graphql-tag';
3+
import { queryAsAdmin } from '../../utils/testQuery';
4+
5+
describe('Case Incident Response resolver standard behavior', () => {
6+
let caseIncidentResponseId = '';
7+
8+
const READ_QUERY = gql`
9+
query caseIncident($id: String!) {
10+
caseIncident(id: $id) {
11+
id
12+
standard_id
13+
name
14+
description
15+
toStix
16+
authorized_members {
17+
id
18+
}
19+
}
20+
}
21+
`;
22+
23+
it('should case incident response created', async () => {
24+
const CREATE_QUERY = gql`
25+
mutation CaseIncidentAdd($input: CaseIncidentAddInput!) {
26+
caseIncidentAdd(input: $input){
27+
id
28+
standard_id
29+
name
30+
description
31+
authorized_members {
32+
id
33+
}
34+
}
35+
}
36+
`;
37+
const caseIncidentResponseData = await queryAsAdmin({
38+
query: CREATE_QUERY,
39+
variables: {
40+
input: {
41+
name: 'Case Incident Response'
42+
}
43+
}
44+
});
45+
expect(caseIncidentResponseData).not.toBeNull();
46+
expect(caseIncidentResponseData?.data?.caseIncidentAdd.authorized_members).not.toBeUndefined();
47+
caseIncidentResponseId = caseIncidentResponseData?.data?.caseIncidentAdd.id;
48+
});
49+
it('should Case Incident Response deleted', async () => {
50+
const DELETE_QUERY = gql`
51+
mutation CaseIncidentDelete($id: ID!) {
52+
caseIncidentDelete(id: $id)
53+
}
54+
`;
55+
// Delete the case
56+
await queryAsAdmin({
57+
query: DELETE_QUERY,
58+
variables: { id: caseIncidentResponseId },
59+
});
60+
// Verify is no longer found
61+
const queryResult = await queryAsAdmin({ query: READ_QUERY, variables: { id: caseIncidentResponseId } });
62+
expect(queryResult).not.toBeNull();
63+
expect(queryResult?.data?.caseIncident).toBeNull();
64+
});
65+
});

0 commit comments

Comments
 (0)