Skip to content

Commit

Permalink
fix: [AnalystData] Avoiding issues with analyst data objects
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisr3d committed Oct 30, 2024
1 parent d5e472b commit 1dce13d
Showing 1 changed file with 23 additions and 16 deletions.
39 changes: 23 additions & 16 deletions pymisp/mispevent.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,28 +60,35 @@ def relationships(self) -> list[MISPRelationship]:

def add_note(self, note: str, language: str | None = None, **kwargs) -> MISPNote: # type: ignore[no-untyped-def]
the_note = MISPNote()
the_note.from_dict(note=note, language=language,
object_uuid=self.uuid, object_type=self.analyst_data_object_type,
**kwargs)
the_note.from_dict(
note=note, language=language, object_uuid=self.uuid,
object_type=self.analyst_data_object_type, contained=True,
**kwargs
)
self.notes.append(the_note)
self.edited = True
return the_note

def add_opinion(self, opinion: int, comment: str | None = None, **kwargs) -> MISPOpinion: # type: ignore[no-untyped-def]
the_opinion = MISPOpinion()
the_opinion.from_dict(opinion=opinion, comment=comment,
object_uuid=self.uuid, object_type=self.analyst_data_object_type,
**kwargs)
the_opinion.from_dict(
opinion=opinion, comment=comment, object_uuid=self.uuid,
object_type=self.analyst_data_object_type, contained=True,
**kwargs
)
self.opinions.append(the_opinion)
self.edited = True
return the_opinion

def add_relationship(self, related_object_type: AbstractMISP | str, related_object_uuid: str | None, relationship_type: str, **kwargs) -> MISPRelationship: # type: ignore[no-untyped-def]
the_relationship = MISPRelationship()
the_relationship.from_dict(related_object_type=related_object_type, related_object_uuid=related_object_uuid,
relationship_type=relationship_type,
object_uuid=self.uuid, object_type=self.analyst_data_object_type,
**kwargs)
the_relationship.from_dict(
related_object_type=related_object_type,
related_object_uuid=related_object_uuid,
relationship_type=relationship_type, object_uuid=self.uuid,
object_type=self.analyst_data_object_type, contained=True,
**kwargs
)
self.relationships.append(the_relationship)
self.edited = True
return the_relationship
Expand Down Expand Up @@ -2591,8 +2598,8 @@ def __init__(self, **kwargs: dict[str, Any]) -> None:
self.language: str
super().__init__(**kwargs)

def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
if 'Note' in kwargs:
def from_dict(self, contained=False, **kwargs) -> None: # type: ignore[no-untyped-def]
if not conainted and 'Note' in kwargs:
kwargs = kwargs['Note']
self.note = kwargs.pop('note', None)
if self.note is None:
Expand All @@ -2616,8 +2623,8 @@ def __init__(self, **kwargs: dict[str, Any]) -> None:
self.comment: str
super().__init__(**kwargs)

def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
if 'Opinion' in kwargs:
def from_dict(self, contained=False, **kwargs) -> None: # type: ignore[no-untyped-def]
if not contained and 'Opinion' in kwargs:
kwargs = kwargs['Opinion']
self.opinion = kwargs.pop('opinion', None)
if self.opinion is not None:
Expand Down Expand Up @@ -2651,8 +2658,8 @@ def __init__(self, **kwargs: dict[str, Any]) -> None:
self.relationship_type: str
super().__init__(**kwargs)

def from_dict(self, **kwargs) -> None: # type: ignore[no-untyped-def]
if 'Relationship' in kwargs:
def from_dict(self, contained=False, **kwargs) -> None: # type: ignore[no-untyped-def]
if not contained and 'Relationship' in kwargs:
kwargs = kwargs['Relationship']
self.related_object_type = kwargs.pop('related_object_type', None)
if self.related_object_type is None:
Expand Down

0 comments on commit 1dce13d

Please sign in to comment.