Skip to content

Commit

Permalink
Merge 347950f into 5a78b63
Browse files Browse the repository at this point in the history
  • Loading branch information
VVX7 committed Apr 26, 2020
2 parents 5a78b63 + 347950f commit 3a3176c
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions pymisp/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,14 +200,20 @@ def events(self, pythonify: bool=False) -> Union[dict, List[MISPEvent]]:
to_return.append(e)
return to_return

def get_event(self, event: Union[MISPEvent, int, str, UUID], deleted: Union[bool, int, list]=False, pythonify: bool=False) -> Union[dict, MISPEvent]:
def get_event(self, event: Union[MISPEvent, int, str, UUID], deleted: Union[bool, int, list]=False, extended: bool = False, pythonify: bool=False) -> Union[dict, MISPEvent]:
'''Get an event from a MISP instance'''
event_id = self.__get_uuid_or_id_from_abstract_misp(event)
if deleted:
data = {'deleted': deleted}
r = self._prepare_request('POST', f'events/view/{event_id}', data=data)
if extended:
r = self._prepare_request('POST', f'events/view/{event_id}/extended:{event_id}', data=data)
else:
r = self._prepare_request('POST', f'events/view/{event_id}', data=data)
else:
r = self._prepare_request('GET', f'events/view/{event_id}')
if extended:
r = self._prepare_request('GET', f'events/view/{event_id}/extended:{event_id}')
else:
r = self._prepare_request('GET', f'events/view/{event_id}')
event_r = self._check_json_response(r)
if not (self.global_pythonify or pythonify) or 'errors' in event_r:
return event_r
Expand Down Expand Up @@ -239,6 +245,17 @@ def update_event(self, event: MISPEvent, event_id: Optional[int]=None, pythonify
e.load(updated_event)
return e

def extend_event(self, event: MISPEvent, event_id: int, pythonify: bool=False) -> Union[dict, MISPEvent]:
'''Extends an event on a MISP instance'''
eid = self.__get_uuid_or_id_from_abstract_misp(event_id)
r = self._prepare_request('POST', f'events/add/extends/{eid}', data=event)
updated_event = self._check_json_response(r)
if not (self.global_pythonify or pythonify) or 'errors' in updated_event:
return updated_event
e = MISPEvent()
e.load(updated_event)
return e

def delete_event(self, event: Union[MISPEvent, int, str, UUID]) -> dict:
'''Delete an event from a MISP instance'''
event_id = self.__get_uuid_or_id_from_abstract_misp(event)
Expand Down

0 comments on commit 3a3176c

Please sign in to comment.