From 507c5a54467763cd4be4f15f95d13add3c6a6315 Mon Sep 17 00:00:00 2001 From: Iglocska Date: Thu, 30 Jul 2015 15:53:34 +0200 Subject: [PATCH] API made a bit more flexible with input data - input for add_event() and update_event() can now be a JSON object, JSON string, XML --- examples/copy_list.py | 3 +-- pymisp/api.py | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/examples/copy_list.py b/examples/copy_list.py index 16cb737..b7a1a55 100644 --- a/examples/copy_list.py +++ b/examples/copy_list.py @@ -4,7 +4,6 @@ import sys from pymisp import PyMISP -import json from keys import cert, priv @@ -31,7 +30,7 @@ def init(cert_to_priv=True): def _to_utf8(request): to_return = None if 'json' in request.headers['content-type']: - to_return = json.dumps(request.json()) + to_return = request.json() else: to_return = request.text.encode('utf-8') return to_return diff --git a/pymisp/api.py b/pymisp/api.py index cc101d3..dbf1891 100644 --- a/pymisp/api.py +++ b/pymisp/api.py @@ -81,20 +81,32 @@ class PyMISP(object): """ Add a new event - :param event: Event object to add + :param event: Event as JSON object / string or XML to add """ session = self.__prepare_session() - return session.post(self.url, data=event) + if self.out_type == 'json': + if isinstance(event, basestring): + return session.post(self.url, data=event) + else: + return session.post(self.url, data=json.dumps(event)) + else: + return session.post(self.url, data=event) def update_event(self, event_id, event): """ Update an event :param event_id: Event id to update - :param event: Elements to add + :param event: Event as JSON object / string or XML to add """ session = self.__prepare_session() - return session.post(self.rest.format(event_id), data=event) + if self.out_type == 'json': + if isinstance(event, basestring): + return session.post(self.rest.format(event_id), data=event) + else: + return session.post(self.rest.format(event_id), data=json.dumps(event)) + else: + return session.post(self.rest.format(event_id), data=event) def delete_event(self, event_id): """