diff --git a/pymisp/api.py b/pymisp/api.py index d2bc34da3..cd5ff9394 100644 --- a/pymisp/api.py +++ b/pymisp/api.py @@ -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 @@ -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)